anchor.diff:  
   class PathWildcardMatcher extends GlobMatcher {
     int get end => tokenStart + 2;
  -  String toRegEx() => ".*";
  +  String toRegExp() => ".*";
   
     PathWildcardMatcher(String input, GlobPattern pattern, int start, int tokenStart) :
         super(input, pattern, start, tokenStart);
  
positive.code:     return [this.group(groupIndices[0])];
    }
  
    String toRegEx();
  }
  
  class FileWildcardMatcher extends GlobMatcher {
    int get end => tokenStart + 1;
    String toRegEx() => "[^/]*";
  
    FileWildcardMatcher(String input, GlobPattern pattern, int start, int tokenStart) :
        super(input, pattern, start, tokenStart);
  
negative.code: class CharRangeMatcher extends GlobMatcher {
    int _end = null;
    int get end => (_end == null) ? _end = input.indexOf("]", tokenStart) : _end;
    String toRegExp() => "[" + (negate ? "^" : "") + "$rangeString]";
    bool get negate => input[tokenStart + 1] == "!";
    String get rangeString => input.substring(tokenStart + (negate ? 1 : 2), end - 1);
  
  