code: function(str) {
    var abbrRegex = /^\-(\w+?)$/,
        fullRegex = /^\-\-(no\-)?(.+?)(?:=(.+))?$/,
        valRegex = /^[^\-].*/;
  
    var charMatch = abbrRegex.exec(str),
        chars = charMatch && charMatch[1].split("");
  
    var fullMatch = fullRegex.exec(str),
        full = fullMatch && fullMatch[2];
  
    var isValue = str !== undefined && (str === "" || valRegex.test(str));
    var value;
    if (isValue) {
      value = str;
    }
    else if (full) {
      value = fullMatch[1] ? false : fullMatch[3];
    }
  
    return {
      str: str,
      chars: chars,
      full: full,
      value: value,
      isValue: isValue
    }
  }
docs: /* an arg is an item that's actually parsed from the command line
  e.g. "-l", "log.txt", or "--logfile=log.txt"