anchor.diff:  import 'arg_parser_exception.dart';
   import 'arg_results.dart';
   import 'option.dart';
  -
  -final _soloOpt = RegExp(r'^-([a-zA-Z0-9])$');
  -final _abbrOpt = RegExp(r'^-([a-zA-Z0-9]+)(.*)$');
  -final _longOpt = RegExp(r'^--([a-zA-Z\-_0-9]+)(=(.*))?$');
   
   /// The actual argument parsing class.
   ///
  
positive.code:   /// (like "-abc") or a single abbreviation with the value directly attached
    /// to it (like "-mrelease").
    bool parseAbbreviation(Parser innermostCommand) {
      var abbrOpt = _abbrOpt.firstMatch(current);
      if (abbrOpt == null) return false;
  
      // If the first character is the abbreviation for a non-flag option, then
      // the rest is the value.
      var c = abbrOpt[1].substring(0, 1);
      var first = grammar.findByAbbreviation(c);
      if (first == null) {
        // Walk up to the parent command if possible.
  
negative.code:   /// 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() {
      // 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(
              value == null, 'Flag option "$name" should not be given a value.');
  
          setFlag(results, option, true);
        } else if (value != null) {
          // We have a value like --foo=bar.
          setOption(results, option, value);
        } else {
          // Option like --foo, so look for the value as the next arg.
          readNextArgAsValue(option);
  