anchor.diff:        message != null ? message : 'letter or digit expected');
   }
   
  -class _WordCharMatcher implements _CharMatcher {
  +class _WordCharMatcher implements _CharacterPredicate {
   
     const _WordCharMatcher();
   
     @override
  -  bool match(int value) => (65 <= value && value <= 90) || (97 <= value && value <= 122)
  +  bool test(int value) => (65 <= value && value <= 90) || (97 <= value && value <= 122)
         || (48 <= value && value <= 57) || (value == 95);
   
   }
  
positive.code:       message != null ? message : '"$element" expected');
  }
  
  class _SingleCharMatcher implements _CharMatcher {
  
    final int _value;
  
    const _SingleCharMatcher(this._value);
  
    @override
    bool match(int value) => identical(_value, value);
  
  }
  
  
negative.code: }
  
  /**
   * Internal abstract character predicate class.
   */
  abstract class _CharacterPredicate {
    bool test(int value);
  }
  
  /**
   * Internal character predicate that negates the result.
   */
  class _NotCharacterPredicate implements _CharacterPredicate {
  
    final _CharacterPredicate _predicate;
  
    const _NotCharacterPredicate(this._predicate);
  
    @override
    bool test(int value) => !_predicate.test(value);
  
  }
  
  /**
   * Internal character predicate for alternatives.
   */
  class _AltCharacterPredicate implements _CharacterPredicate {
  
    final List<_CharacterPredicate> _predicates;
  
    const _AltCharacterPredicate(this._predicates);
  
    @override
    bool test(int value) {
      for (var predicate in _predicates) {
        if (predicate.test(value)) {
          return true;
        }
      }
  