code: public Iterable<LinkSpan> extractLinks(final CharSequence input) {
          if (input == null) {
              throw new NullPointerException("input must not be null");
          }
          return new Iterable<LinkSpan>() {
              @Override
              public Iterator<LinkSpan> iterator() {
                  return new LinkIterator(input);
              }
          };
      }
docs: Extract the links from the input text. Can be called multiple times with different inputs (thread-safe).
  
  @param input the input text, must not be null
  @return a lazy iterable for the links in order that they appear in the input, never null
  @see #extractSpans(CharSequence) extractSpans to also get spans for the plain text pieces of the input