RE2/J
linear time regular expression matching in Java
...Unlike traditional regex engines such as Java’s java.util.regex, PCRE, or Perl’s implementation—which rely on backtracking and can suffer from catastrophic exponential runtimes—RE2/J guarantees linear-time matching relative to input size. It achieves this efficiency by simulating all possible matches in a single pass using a nondeterministic finite automaton (NFA), ensuring predictable and safe performance even with complex patterns. This makes RE2/J ideal for applications that must handle user-supplied regular expressions securely without the risk of denial-of-service through regex backtracking. While it omits some advanced features like backreferences and certain Java regex options, it supports the vast majority of practical expressions used in production code. ...