in lib/src/characters_impl.dart [236:248]
Characters getRange(int start, [int? end]) {
RangeError.checkNotNegative(start, "start");
if (end == null) return _skip(start);
if (end < start) throw RangeError.range(end, start, null, "end");
if (end == start) return Characters.empty;
if (start == 0) return _take(end);
if (string.isEmpty) return this;
var breaks = Breaks(string, 0, string.length, stateSoTNoBreak);
var startIndex = _skipIndices(start, 0, breaks);
if (startIndex == string.length) return Characters.empty;
var endIndex = _skipIndices(end - start, start, breaks);
return StringCharacters(string.substring(startIndex, endIndex));
}