throw new URISyntaxException(str, "doesn't match URI regular expression");  if (rawAuthority != null) { pattern = Pattern.compile(AUTHORITY_REGEXP); matcher = pattern.matcher(rawAuthority);  if (matcher.matches()) { rawUserInfo = getURIGroup(matcher, AUTHORITY_USERINFO_GROUP); rawHost = getURIGroup(matcher, AUTHORITY_HOST_GROUP);  String portStr = getURIGroup(matcher, AUTHORITY_PORT_GROUP);  if (portStr != null) try { port = Integer.parseInt(portStr); } catch (NumberFormatException e) { URISyntaxException use = new URISyntaxException (str, "doesn't match URI regular expression"); use.initCause(e); throw use; } } else throw new URISyntaxException(str, "doesn't match URI regular expression"); }
throw new URISyntaxException(str, "doesn't match URI regular expression"); parseServerAuthority();
  private void parseURI(String str) throws URISyntaxException  {    Pattern pattern = Pattern.compile(URI_REGEXP);    Matcher matcher = pattern.matcher(str);        if (matcher.matches())      {	scheme = getURIGroup(matcher, SCHEME_GROUP);	rawSchemeSpecificPart = matcher.group(SCHEME_SPEC_PART_GROUP);	schemeSpecificPart = unquote(rawSchemeSpecificPart);	if (!isOpaque())	  {	rawAuthority = getURIGroup(matcher, AUTHORITY_GROUP);	    rawPath = matcher.group(PATH_GROUP);	rawQuery = getURIGroup(matcher, QUERY_GROUP);	  }	rawFragment = getURIGroup(matcher, FRAGMENT_GROUP);      }    else      throw new URISyntaxException(str, "doesn't match URI regular expression");    if (rawAuthority != null)      {	pattern = Pattern.compile(AUTHORITY_REGEXP);	matcher = pattern.matcher(rawAuthority);	if (matcher.matches())	  {	    rawUserInfo = getURIGroup(matcher, AUTHORITY_USERINFO_GROUP);	    rawHost = getURIGroup(matcher, AUTHORITY_HOST_GROUP);	    String portStr = getURIGroup(matcher, AUTHORITY_PORT_GROUP);	    if (portStr != null)	      try		{		  port = Integer.parseInt(portStr);		}	      catch (NumberFormatException e)		{		  URISyntaxException use =		    new URISyntaxException		      (str, "doesn't match URI regular expression");		  use.initCause(e);		  throw use;		}	  }	else	  throw new URISyntaxException(str, "doesn't match URI regular expression");      }    // We must eagerly unquote the parts, because this is the only time    // we may throw an exception.    authority = unquote(rawAuthority);    userInfo = unquote(rawUserInfo);    host = unquote(rawHost);    path = unquote(rawPath);    query = unquote(rawQuery);    fragment = unquote(rawFragment);  }