anchor.diff:    /// Escapes any non-word char with two backslashes used by any method, except [this.add]
     ///
     /// Throws an [ArgumentError] if [value] is null or empty.
  -  /// Returns escaped string.
  -  ///
  +  /// Returns sanitized string value.
  +  ///
  +  /// Example:
     ///   sanitize('.\$^{abc 123'); // \\.\\$\\^\\{abc\\ 123
  +  ///
     String sanitize(String value)
     {
       if (value == null || value.isEmpty)
  
positive.code:     return source.replaceFirst(this.toRegExp(), value);
    }
  
    RegExp toRegExp(){
      return new RegExp('$_prefixes$_source$_suffixes', caseSensitive: !_ignoreCase, multiLine: _isMultiLine);
    }
  
    String toString(){
      return toRegExp().pattern;
    }
  
    bool isMatch(String value) {
      return toRegExp().hasMatch(value);
    }
  
negative.code:     return then(value).countRange(min, max);
    }
  
    /// Starts a capturing group
    ///
    /// Returns this verbal expression object.
    VerbalExpression beginCapture(){
      _suffixes = ')$_suffixes';
      return add('(');
    }
  
    /// Ends a capturing group
    ///
    /// Returns this verbal expression object.
    VerbalExpression endCapture(){
      // Remove the last parentheses from the _suffixes and add to the regex itself
      _suffixes = _suffixes.substring(0, _suffixes.length - 1);
      return add(')');
    }
  
    /// Add a alternative expression to be matched
    ///
    /// Throws an [ArgumentError] if [value] is null or empty.
    /// Returns this verbal expression object.
    VerbalExpression or(String value){
      _prefixes += '(';
      _suffixes = ')$_suffixes';
      return add(')|(').then(value);
    }
  
    /// Shorthand function for the String.replace functions
    ///
    /// Takes into account global modifier
    /// Throws an [ArgumentError] if [value] or [source] is null or empty.
    /// Returns this verbal expression object.
    String replace(String source, String value){
  
      if (source == null) throw new ArgumentError.notNull('source');
  