public boolean match(ParsePair parse_pair, StringWrapper ret_argument) throws ArgumentException {
			Matcher m;
			m = long_pattern.matcher(parse_pair.next());
			if(m.matches()) {
				parse_pair.step();
				if(m.groupCount() == 1) {
					ret_argument.str = m.group(1);
					if(ret_argument.str.isEmpty() && has_arg == arg_style.REQUIRED_ARGUMENT) {
						throw new ArgumentException("Missing argument for option --"+longopt, type.MISSING_ARGUMENT);
					} else if(ret_argument.str.isEmpty()){
						ret_argument.str = null;
					}
				} else {
					ret_argument.str = null;
				}
				return true;
			}
			
			if(parse_pair.next().equals("--"+longopt) && has_arg == arg_style.REQUIRED_ARGUMENT) {
				parse_pair.step();
				throw new ArgumentException("Missing required argument for option --"+longopt, type.MISSING_ARGUMENT);
			}
			return false;
		}