# fancy-regex
This module contains a hybrid regex implementation, designed to
support a relatively rich set of features. In particular, this
implementation uses backtracking to implement "fancy" features such as
look-around and backtracking, which are not supported in purely
NFA-based implementations (exemplified by
[RE2](https://github.com/google/re2), and implemented in Rust in the
[regex](https://crates.io/crates/regex) crate).
A goal is to be as efficient as possible. For a given regex, the NFA
implementation has asymptotic running time linear in the length of the
input, while in the general case a backtracking implementation has
exponential blowup. A an example given in [Static Analysis for Regular
Expression Exponential Runtime via Substructural
Logics](https://www.cs.bham.ac.uk/~hxt/research/redos_full.pdf) is:
```python
import re