code: public static <T> Parser<T> longest(Parser<? extends T>... parsers) {
      if (parsers.length == 0) return never();
      if (parsers.length == 1) return parsers[0].cast();
      return new BestParser<T>(parsers, IntOrder.GT);
    }
docs: A {@link Parser} that runs every element of {@code parsers} and selects the longest match.
  If two matches have the same length, the first one is favored.