anchor.diff:        globMatchers.insert(0, new PartialPathMatcher(pattern, globPattern, 0));
       }
   
  -    _globRegExpParts = globMatchers.map((GlobMatcher m) =>
  +    _globPartsAsStrings = globMatchers.map((GlobMatcher m) =>
           _escape(pattern.substring(m.start, m.tokenStart)) + m.toRegExp()).toList();
     }
   
  
positive.code:   // PREFIX_MATCH - Prefix match found ("f*/b*/" partially matches "foo/")
    // COMPLETE_MATCH - Prefix match found ("f**/b*" completely matches "foo/bar/baz")
    int matchPath(String path) {
      int lastIndex = 0;
  
      String globSoFar = "";
      int globIndex = 0;
  
      for (;globIndex < _globRegExpParts.length; globIndex++) {
        globSoFar += ((globSoFar != "") ? ".*" : "") + _globRegExpParts[globIndex];
        if (globIndex == _globRegExpParts.length - 1) globSoFar = globSoFar + "\$";
        if (new RegExp(globSoFar).matchAsPrefix(path) == null) break;
      }
  
      if (globIndex > 0) {
        if (globIndex == _globRegExpParts.length) {
          return COMPLETE_MATCH;
        }
        return PREFIX_MATCH;
  
negative.code: 
    GlobMatcher matchAsPrefix(String string, [int start = 0]) {
      int n = start;
      RegExp globCharsRegExp = new RegExp(r"[\\*?\[\{]");
  
      do {
        n = string.indexOf(globCharsRegExp, n);
        GlobMatcher matcher;
  
        if (n == -1) {
  