code: private String stripPrefix(String text, String prefix, ParsePosition pp) {
          // if the prefix text is empty, dump out without doing anything
          if (prefix.length() == 0) {
              return text;
          } else {
              // otherwise, use prefixLength() to match the beginning of
              // "text" against "prefix".  This function returns the
              // number of characters from "text" that matched (or 0 if
              // we didn't match the whole prefix)
              int pfl = prefixLength(text, prefix);
              if (pfl != 0) {
                  // if we got a successful match, update the parse position
                  // and strip the prefix off of "text"
                  pp.setIndex(pp.getIndex() + pfl);
                  return text.substring(pfl);
  
                  // if we didn't get a successful match, leave everything alone
              } else {
                  return text;
              }
          }
      }
docs: This function is used by parse() to match the text being parsed
  against a possible prefix string.  This function
  matches characters from the beginning of the string being parsed
  to characters from the prospective prefix.  If they match, pp is
  updated to the first character not matched, and the result is
  the unparsed part of the string.  If they don't match, the whole
  string is returned, and pp is left unchanged.
  @param text The string being parsed
  @param prefix The text to match against
  @param pp On entry, ignored and assumed to be 0.  On exit, points
  to the first unmatched character (assuming the whole prefix matched),
  or is unchanged (if the whole prefix didn't match).
  @return If things match, this is the unparsed part of "text";
  if they didn't match, this is "text".