Skip to the content.

Regular Expression Feature Comparisons

This provides a comparison of features between various regular expression engines.

Table of Contents

Support Table

Improve this table

Table 1 of 2

next

  Perl PCRE Boost.Regex .NET Oniguruma Hyperscan ICU
Flags ✔ ✔ ✔ ✔ ✔ ✔ ✔
Anchors ✔ ✔ ✔ ✔ ✔ ✔ ✔
Buffer Boundaries ✔ ✔ ✔ ✔ ✔ ✔ ✔
Word Boundaries ✔ ✔ ✔ ✔ ✔ ✔ ✔
Text Segment Boundaries ❌ ❌ ❌ ❌ ✔ ❌ ❌
Continuation Escape ✔ ✔ ✔ ✔ ✔ ❌ ✔
Alternatives ✔ ✔ ✔ ✔ ✔ ✔ ✔
Wildcard ✔ ✔ ✔ ✔ ✔ ✔ ✔
Character Classes ✔ ✔ ✔ ✔ ✔ ✔ ✔
Posix Character Classes ✔ ✔ ✔ ❌ ✔ ✔ ✔
Negated Posix Character Classes ✔ ✔ ❌ ❌ ✔ ✔ ❌
Collating Elements ❌ ❌ ✔ ❌ ❌ ❌ ❌
Equivalence Classes ❌ ❌ ✔ ❌ ❌ ❌ ❌
Character Class Escapes ✔ ✔ ✔ ✔ ✔ ✔ ✔
Line Endings Escape ✔ ✔ ✔ ❌ ✔ ❌ ✔
Character Property Escapes ✔ ✔ ✔ ✔ ✔ ✔ ✔
Character Class Nested Set ✔ ❌ ❌ ❌ ✔ ❌ ✔
Character Class Intersection ✔ ❌ ❌ ❌ ✔ ❌ ✔
Character Class Union ✔ ❌ ❌ ❌ ❌ ❌ ❌
Character Class Subtraction ✔ ❌ ❌ ✔ ✔ ❌ ✔
Character Class Symmetric Difference ✔ ❌ ❌ ❌ ❌ ❌ ❌
Character Class Complement ✔ ❌ ❌ ❌ ❌ ❌ ❌
Quoted Characters ✔ ✔ ✔ ❌ ❌ ❌ ✔
Quantifiers ✔ ✔ ✔ ✔ ✔ ✔ ✔
Lazy Quantifiers ✔ ✔ ✔ ✔ ✔ ✔ ✔
Possessive Quantifiers ✔ ✔ ✔ ❌ ✔ ❌ ✔
Capturing Groups ✔ ✔ ✔ ✔ ✔ ✔ ✔
Named Capturing Groups ✔ ✔ ✔ ✔ ✔ ✔ ✔
Non-Capturing Groups ✔ ✔ ✔ ✔ ✔ ✔ ✔
Backreferences ✔ ✔ ✔ ✔ ✔ ❌ ✔
Comments ✔ ✔ ✔ ✔ ✔ ✔ ✔
Line Comments ✔ ✔ ❌ ✔ ❌ ❌ ✔
Modifiers ✔ ✔ ✔ ✔ ✔ ✔ ✔
Branch Reset ✔ ✔ ✔ ❌ ❌ ❌ ❌
Lookahead ✔ ✔ ✔ ✔ ✔ ❌ ✔
Lookbehind ✔ ✔ ✔ ✔ ✔ ❌ ✔
Non-Backtracking Expressions ✔ ✔ ✔ ✔ ✔ ❌ ✔
Recursion ✔ ✔ ✔ ✔ ✔ ❌ ❌
Conditional Expressions ✔ ✔ ✔ ✔ ✔ ❌ ❌
Subroutines ✔ ✔ ✔ ❌ ✔ ❌ ❌
Callouts ✔ ✔ ❌ ❌ ✔ ❌ ❌
Backtracking Control Verbs ✔ ✔ ❌ ❌ ❌ ❌ ❌

Table 2 of 2

prev

  Glib/GRegex ECMAScript
Flags ✔ ✔
Anchors ✔ ✔
Buffer Boundaries ✔ ❌
Word Boundaries ✔ ✔
Text Segment Boundaries ❌ ❌
Continuation Escape ✔ ❌
Alternatives ✔ ✔
Wildcard ✔ ✔
Character Classes ✔ ✔
Posix Character Classes ✔ ❌
Negated Posix Character Classes ✔ ❌
Collating Elements ❌ ❌
Equivalence Classes ❌ ❌
Character Class Escapes ✔ ✔
Line Endings Escape ✔ ❌
Character Property Escapes ✔ ✔
Character Class Nested Set ❌ ❌
Character Class Intersection ❌ ❌
Character Class Union ❌ ❌
Character Class Subtraction ❌ ❌
Character Class Symmetric Difference ❌ ❌
Character Class Complement ❌ ❌
Quoted Characters ✔ ❌
Quantifiers ✔ ✔
Lazy Quantifiers ✔ ✔
Possessive Quantifiers ✔ ❌
Capturing Groups ✔ ✔
Named Capturing Groups ✔ ✔
Non-Capturing Groups ✔ ✔
Backreferences ✔ ✔
Comments ✔ ❌
Line Comments ✔ ❌
Modifiers ✔ ❌
Branch Reset ❌ ❌
Lookahead ✔ ✔
Lookbehind ✔ ✔
Non-Backtracking Expressions ✔ ❌
Recursion ✔ ❌
Conditional Expressions ✔ ❌
Subroutines ✔ ❌
Callouts ❌ ❌
Backtracking Control Verbs ❌ ❌