in lib/src/comparators.dart [187:209]
int compareAsciiLowerCaseNatural(String a, String b) {
var defaultResult = 0; // Returned if no difference found.
for (var i = 0; i < a.length; i++) {
if (i >= b.length) return 1;
var aChar = a.codeUnitAt(i);
var bChar = b.codeUnitAt(i);
if (aChar == bChar) continue;
var aLowerCase = aChar;
var bLowerCase = bChar;
if (_upperCaseA <= aChar && aChar <= _upperCaseZ) {
aLowerCase += _asciiCaseBit;
}
if (_upperCaseA <= bChar && bChar <= _upperCaseZ) {
bLowerCase += _asciiCaseBit;
}
if (aLowerCase != bLowerCase) {
return _compareNaturally(a, b, i, aLowerCase, bLowerCase);
}
if (defaultResult == 0) defaultResult = aChar - bChar;
}
if (b.length > a.length) return -1;
return defaultResult.sign;
}