code: public String getMatchedText() {
          if (search_.matchedLength() > 0) {
              int limit = search_.matchedIndex_ + search_.matchedLength();
              StringBuilder result = new StringBuilder(search_.matchedLength());
              CharacterIterator it = search_.text();
              it.setIndex(search_.matchedIndex_);
              while (it.getIndex() < limit) {
                  result.append(it.current());
                  it.next();
              }
              it.setIndex(search_.matchedIndex_);
              return result.toString();
          }
          return null;
      }
docs: Returns the text that was matched by the most recent call to
  {@link #first}, {@link #next}, {@link #previous}, or {@link #last}.
  If the iterator is not pointing at a valid match (e.g. just after
  construction or after {@link #DONE} has been returned,
  returns an empty string.
  
  @return  the substring in the target test of the most recent match,
  or null if there is no match currently.
  @see #first
  @see #next
  @see #previous
  @see #last