anchor.diff:      var pos = 0;
       while (pos < parts.length) {
         var thePart = parts.elementAt(pos);
  -      _checkAndThrow(thePart._value is String, 'Missing select key element.');
         var key = thePart._value;
   
         pos++;
  
positive.code:     var pos = 0;
      while (pos < parts.length) {
        var thePart = parts.elementAt(pos);
        _checkAndThrow(thePart._value is String, 'Missing ordinal key element.');
        var key = thePart._value;
  
        pos++;
  
negative.code:       var patternValue = currentPattern._value;
        var patternType = currentPattern._type;
  
        switch (patternType) {
          case _BlockType.string:
            result.add(patternValue as String);
  