userInfo = unquote(rawUserInfo); host = unquote(rawHost);
  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 = getURIGroup(matcher, SCHEME_SPEC_PART_GROUP);	rawAuthority = getURIGroup(matcher, AUTHORITY_GROUP);	rawPath = getURIGroup(matcher, PATH_GROUP);	rawQuery = getURIGroup(matcher, QUERY_GROUP);	rawFragment = getURIGroup(matcher, FRAGMENT_GROUP);      }    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.    schemeSpecificPart = unquote(rawSchemeSpecificPart);    authority = unquote(rawAuthority);    path = unquote(rawPath);    query = unquote(rawQuery);    fragment = unquote(rawFragment);  }