A modern, flexible regular expression library supporting multiple character encodings and syntaxes.
Oniguruma is a modern regular expression library written in C that provides comprehensive pattern matching capabilities. It solves the problem of inconsistent regex implementations by combining features from different programming languages into a single, flexible library with extensive character encoding support.
System programmers and library developers who need robust regex functionality in C/C++ applications, particularly those working with multilingual text processing or building programming language interpreters.
Developers choose Oniguruma for its exceptional encoding flexibility, modern regex features, and multiple API compatibility (native, POSIX, GNU), making it a versatile foundation for text processing in diverse environments.
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.
Supports over 20 character encodings per regex object, including UTF-8/16/32, EUC variants, and ISO-8859 series, as detailed in the README's encoding list.
Incorporates advanced operators like (*SKIP) and updates to Unicode versions (e.g., 16.0), blending features from different language implementations for flexible pattern matching.
Provides native, POSIX, and GNU regex APIs, ensuring compatibility with various programming standards, which is highlighted in the Key Features section.
Works on Linux, Unix, Windows (via Visual Studio or vcpkg), and Cygwin, with clear installation instructions for different platforms in the README.
The README explicitly states the project ended on April 24, 2025, meaning no future updates, bug fixes, or official support, posing a risk for production use.
Notices about POSIX API binary compatibility require specific configure flags (e.g., --enable-binary-compatible-posix-api), adding setup complexity and potential breaking changes during upgrades.
As a C library, it lacks out-of-the-box bindings for popular high-level languages, unlike alternatives like PCRE, which have wider ecosystem support.