code: public static Pattern atLeast(final int min, final CharPredicate predicate) {
      Checks.checkMin(min);
      return new Pattern() {
        @Override public int match(CharSequence src, int begin, int end) {
          int minLen = RepeatCharPredicatePattern.matchRepeat(min, predicate, src, end, begin, 0);
          if (minLen == MISMATCH) return MISMATCH;
          return matchMany(predicate, src, end, begin + minLen, minLen);
        }
        @Override public String toString() {
          return (min > 1) ? (predicate + "{" + min + ",}") : (predicate + "+");
        }
      };
    }
docs: Returns a {@link Pattern} object that matches if the input starts with {@code min} or more characters and all
  satisfy {@code predicate}.
  @since 2.2