in lib/src/ast.dart [313:340]
String _toRegExp() {
var buffer = StringBuffer();
var containsSeparator = ranges.any((range) => range.contains(_separator));
if (!negated && containsSeparator) {
// Add `(?!/)` because ranges are never allowed to match separators.
buffer.write('(?!/)');
}
buffer.write('[');
if (negated) {
buffer.write('^');
// If the range doesn't itself exclude separators, exclude them ourselves,
// since ranges are never allowed to match them.
if (!containsSeparator) buffer.write('/');
}
for (var range in ranges) {
var start = String.fromCharCodes([range.min]);
buffer.write(regExpQuote(start));
if (range.isSingleton) continue;
buffer.write('-');
buffer.write(regExpQuote(String.fromCharCodes([range.max])));
}
buffer.write(']');
return buffer.toString();
}