A fast, safe, and efficient regular expression library for Object Pascal with Unicode support and multiple optimized subengines.
FLRE (Fast Light Regular Expressions) is a high-performance regular expression library implemented in Object Pascal, designed for speed and safety while supporting common Perl and POSIX features. It emphasizes a backtracking-free approach and includes Unicode 8.0.0 support with UTF8 decoding integrated into its automata for optimized processing.
Developers working with Object Pascal (Delphi and Free Pascal) or C/C++ who need fast, safe regular expression processing, particularly those prioritizing performance and maintainability in text parsing or search applications.
Developers choose FLRE for its backtracking-free design that enhances safety and speed, automatic selection of multiple subengines for optimal performance based on regex patterns, and integrated Unicode support with efficient UTF8 handling.
FLRE - Fast Light Regular Expressions - A fast light regular expression library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically selects from fixed string search, DFA, NFA variants, and bit state NFA to optimize performance based on regex patterns, as detailed in the subengines section for efficient matching.
Unicode 8.0.0 support with UTF8 decoding baked into automata enables efficient bytewise operations and reduces error-proneness, as mentioned in the README's design philosophy.
Converts regex patterns into boolean expressions (simple, SQL, or short forms) to reduce actual regex searches when combined with text indexing, cutting down processing overhead significantly.
Offers a foreign API for C/C++ usage, handling both null-terminated and 1-based strings, making it accessible beyond its native Object Pascal environment, as noted in the features.
Lacks support for irregular expression features like forward references and nested back references, which are common in other regex engines such as PCRE, limiting its versatility for complex patterns.
Lookahead assertions and back references are experimental and may be removed, as warned in the README, making FLRE unreliable for projects depending on these capabilities.
Primarily implemented in Object Pascal and requires PUCU.pas for Unicode tables, adding setup complexity and limiting its appeal to broader developer communities outside Pascal or C/C++.