A tester for researching Regular Expression engines. Made in Visual Studio 2026 using C#, C++, WPF, .NET 9.
It includes the following Regular Expression engines:
- Regex class from .NET 9.
- Regex class from .NET Framework 4.8.
- wregex class from C++ Standard Template Library (MSVC and GCC) and the SRELL variation.
- Boost.Regex from Boost C++ Libraries 1.89.0.
- PCRE2 Open Source Regex Library 10.47 (in C).
- RE2 Library 2025-08-12 from Google (in C++).
- Oniguruma Regular Expression Library 6.9.10 (in C++).
- SubReg 2024-08-11 (in C).
- JavaScript RegExp object in Microsoft Edge WebView2, V8 (via Node.js) 14.1.146, QuickJs 2025-09-13, SpiderMonkey C145.0, JavaScriptCore (via Bun 1.3.11) and RE2JS 1.2.0.
- VBScript RegExp object used in Access, Excel, Word.
- Hyperscan 5.4.2 from Intel (in C).
- Chimera, a hybrid of Hyperscan 5.4.2 and PCRE 8.41 (in C).
- ICU Regular Expressions 77.1 (in C++).
- Rust 1.90.0 crates: regex 1.12.2, regex_lite 0.1.8, fancy_regex 0.16.2 and regress 0.10.4.
- Java 24.0.1 (java.util.regex and com.google.re2j packages).
- Python 3.13.6 (standard re module, third-party regex module).
- D 2.111.0 (std.regex module).
- Perl 5.40.2 (Strawberry Perl).
- Fortran Forgex v4.6 module (Intel® Fortran Compiler 2025.1.0).
- TRE 0.9.0 (in C).
- tiny-regex-c 2022-06-21 (in C).
- Ada GNAT.Regpat 15.2.0 (in Ada).
- TRegEx 29.0 (C++Builder, Delphi).
- QRegularExpression class (based on PCRE2) from Qt 6.9.3 (in C++).
- compile-time-regular-expressions (CTRE)2 3.10.0 (in C++).
Sample:
Enter the pattern and text to textboxes. The results are updated automatically. The found matches are colourised.
Use the Options area to select and configure the Regular Expression engine. Press the “➕” button to open more tabs.
Currently the regular expressions are saved and loaded automatically, and a single instance can be started.
The program can be built using Visual Studio 2026 or Visual Studio 2022 and .NET 9. The following Visual Studio workloads are required:
- .NET desktop development.
- Desktop development with C++.
Open the RegExpressWPFNET.slnx solution. Right-click the RegExpressWPFNET project in Solution Explorer and select “Set as Startup Project”. Select “Rebuild Solution” from BUILD menu. Then the program can be started.
The sources are written in C# and C++. The minimal sources of third-party regular expression libraries are included.
- Principal GIT branch: main.
- Solution file: RegExpressWPFNET.slnx.
- Startup project: RegExpressWPFNET.
- Configurations: “Debug, Any CPU” or “Release, Any CPU”. The C++ projects use “x64”.
- Operating Systems: Windows 11, Windows 10.
Some of engines require certain third-party library files, which were downloaded or compiled separately and included into main branch. (No additional installations required).
Note
After loading the solution file in Visual Studio, make sure that the RegExpressWPFNET project is set as Startup Project.
Note
To avoid compilation errors after acquiring new releases, use the “Rebuild Solution” command.
The various functionalities of regular expression engines are presented in the Excel file.
Download and open the file:
-
Engines that support named groups (
(?<name>...)or(?P<name>...)):- Regex (.NET, .NET Framework)
- wregex (SRELL)
- RE2
- PCRE2
- Boost.Regex
- Oniguruma
- JavaScript
- Hyperscan
- Chimera
- ICU
- Rust: regex, fancy_regex, regress
- Java: regex, re2j
- Python: re, regex
- D
- Perl
- TRegEx
- Qt
- CTRE
-
Engines that support variable-length positive and negative lookbehinds (
(?<=...and(?<!...))- Regex (.NET, .NET Framework)
- wregex (SRELL)
- Oniguruma
- JavaScript
- Rust: regress
- Java: regex
- Python: regex
- D
-
Engines that are protected against “catastrophic backtracking” or timeout errors
(pattern:(a*)*b, text:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac):- RE2
- PCRE2
- Oniguruma
- JavaScript: Bun
- Hyperscan
- Chimera
- Rust: regex, fancy_regex
- Python: regex
- D
- Perl
- Fortran: Forgex
- TRE
- tiny-regex-c
- wregex (GCC with polynomial option set, without back-references)
- TRegEx
- Qt
- CTRE
-
Engines that support fuzzy or approximate matching:
- Hyperscan
- Python: regex
- TRE

