anchor.diff:    /// Tries to parse the current argument as a long-form named option, which
     /// may include a value like "--mode=release" or "--mode release".
     bool parseLongOption() {
  -    var longOpt = _longOpt.firstMatch(current);
  -    if (longOpt == null) return false;
  -
  -    var name = longOpt[1];
  +    // Hand coded regexp: r'^--([a-zA-Z\-_0-9]+)(=(.*))?$'
  +    // Two hyphens then at least one letter/digit/hyphen, optionally an equal
  +    // sign followed by zero or more anything-but-newlines.
  +
  +    if (!current.startsWith('--')) return false;
  +
  +    var index = current.indexOf('=');
  +    var name = index == -1 ? current.substring(2) : current.substring(2, index);
  +    for (var i = 0; i != name.length; ++i) {
  +      if (!_isLetterOrDigitOrHyphen(name.codeUnitAt(i))) return false;
  +    }
  +    var value = index == -1 ? null : current.substring(index + 1);
  +    if (value != null && (value.contains('\n') || value.contains('\r'))) {
  +      return false;
  +    }
  +
       var option = grammar.options[name];
       if (option != null) {
         args.removeFirst();
         if (option.isFlag) {
  -        validate(longOpt[3] == null,
  -            'Flag option "$name" should not be given a value.');
  +        validate(
  +            value == null, 'Flag option "$name" should not be given a value.');
   
           setFlag(results, option, true);
  -      } else if (longOpt[3] != null) {
  +      } else if (value != null) {
           // We have a value like --foo=bar.
  -        setOption(results, option, longOpt[3]);
  +        setOption(results, option, value);
         } else {
           // Option like --foo, so look for the value as the next arg.
           readNextArgAsValue(option);
  
positive.code:         '"$value" is not an allowed value for option "${option.name}".');
    }
  }
  
negative.code: import 'arg_parser_exception.dart';
  import 'arg_results.dart';
  import 'option.dart';
  
  /// The actual argument parsing class.
  ///
  