anchor.diff:          subTree.globValue['*'];
     }
   
  -  T _matchParts(SubTree<T> root, Iterable<String> segments, String tag) {
  +  T _matchRegex(SubTree<T> root, Iterable<String> segments, String tag) {
       for (MapEntry<RegExp, SubTree<T>> regex in root.regexes) {
         if (regex.key.allMatches(segments.first).isNotEmpty) {
           T ret = _match(regex.value, segments.skip(1), tag);
  
positive.code: 
        SubTree<T> next = subTree.fixed[seg];
        if (subTree.hasVarPaths) {
          if (next != null) {
            T ret = _match(next, segments.skip(i + 1), tag);
            if (ret != null) return ret;
  
negative.code:         for (MapEntry<RegExp, SubTree<T>> regex in subTree.regexes) {
            if (regex.key.allMatches(seg).isNotEmpty) {
              if (next != null) {
                // Multiple regex matches
                T ret = _matchRegex(subTree, segments.skip(i), tag);
                if (ret != null) return ret;
                next = null;
                break;
  