Why regex can become slow
Some patterns trigger catastrophic backtracking when input is long and ambiguous.
These slowdowns can become production incidents when regex is used on untrusted input.
- Avoid nested greedy quantifiers like `(.*)+`.
- Prefer explicit character classes and bounds.
- Anchor patterns when full-line matches are intended.
Performance-safe workflow
Test patterns with normal and intentionally adversarial input before shipping.
If performance remains uncertain, simplify regex or switch to deterministic parsing logic.
- Benchmark long strings in realistic runtime.
- Add max input limits where appropriate.
- Review regex patterns as part of security/performance checks.
FAQ
How do I spot catastrophic backtracking risk?
Look for overlapping alternatives and nested greedy quantifiers that can match the same text in many ways.
Does non-capturing group improve speed?
Sometimes slightly, but pattern structure clarity and ambiguity reduction matter more.
Should I use regex for large document parsing?
Usually no. For large or nested formats, structured parsers are safer and faster.