code: public MultiPatternSearcher searcher() {
          final MultiPatternAutomaton searcherAutomaton = makeAutomatonWithPrefix(".*");
          final List<Automaton> indidivualAutomatons = new ArrayList<>();
          for (final String pattern: this.patterns) {
              final Automaton automaton = new RegExp(pattern).toAutomaton();
              automaton.minimize();
              automaton.determinize();
              indidivualAutomatons.add(automaton);
          }
          return new MultiPatternSearcher(searcherAutomaton, indidivualAutomatons);
      }
docs: Equivalent of Pattern.compile, but the result is only valid for pattern search.
  The searcher will return the first occurrence of a pattern.
  
  This operation is costly, make sure to cache its result when performing
  search with the same patterns against the different strings.
  
  @return A searcher object