| Replacement Reference |
| Characters |
| Matched Text & Backreferences |
| Case Conversion |
| Context |
| Conditionals |
This table explains which syntax is supported for matching Unicode categories, which is one kind of Unicode property that flavors may support. The table does not list the names of all the Unicode categories because they are the same for all versions of Unicode. If a flavor supports a particular syntax for categories then it supports all categories with that syntax. You can find the list of categories in the tutorial section. Exactly which characters are matched by these categories depends on the Unicode version that the regex flavor is based on.
| Feature | Syntax | Description | Example | JGsoft | Python | JavaScript | VBScript | XRegExp | .NET | Java | ICU | RE2 | Perl | PCRE | PCRE2 | PHP | Delphi | R | Ruby | std::regex | Boost | Tcl | POSIX | GNU | Oracle | XML | XPath |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Unicode category | \pL where L is a single-letter Unicode category | Matches a single Unicode code point in the specified Unicode category. | \pL matches à encoded as U+00E0; \pS matches © | YES | no | no | no | YES | no | YES | no | default | YES | 5.0 | YES | YES | YES | YES | no | no | no | no | no | no | no | no | no |
| Unicode category | \PL where L is a single-letter Unicode category | Matches a single Unicode code point that is not in the specified Unicode category. | \PS matches à encoded as U+00E0; \PL matches © | YES | no | no | no | YES | no | YES | no | default | YES | 5.0 | YES | YES | YES | YES | no | no | no | no | no | no | no | no | no |
| Unicode category | \p{Ll} where Ll is a Unicode category | Matches a single Unicode code point in the specified Unicode category. | \p{Ll} matches à encoded as U+00E0; \p{S} matches © | YES | no | with /u | no | YES | YES | YES | YES | default | YES | 5.0 | YES | YES | YES | YES | 1.9 | no | no | no | no | no | no | YES | YES |
| Unicode category | \p{IsLl} where Ll is a single-letter or two-letter Unicode category | Matches a single Unicode code point in the specified Unicode category. | \p{IsLl} matches à encoded as U+00E0; \p{IsS} matches © | YES | no | no | no | no | no | YES | 63 | no | YES | no | no | no | no | no | no | no | no | no | no | no | no | no | no |
| Unicode category | \p{Category} | Matches a single Unicode code point in the specified Unicode category. | \p{Letter} matches à encoded as U+00E0; \p{Symbol} matches © | YES | no | with /u | no | YES | no | no | YES | no | YES | no | no | no | no | no | 1.9 | no | no | no | no | no | no | no | no |
| Unicode category | \p{IsCategory} | Matches a single Unicode code point in the specified Unicode category. | \p{IsLetter} matches à encoded as U+00E0; \p{IsSymbol} matches © | YES | no | no | no | no | no | no | 63 | no | YES | no | no | no | no | no | no | no | no | no | no | no | no | no | no |
| Unicode category | \p{L&} | Matches a single Unicode code point that is in the uppercase letter, lowercase letter, or titlecase letter category. | \p{L&} matches A, a, and Lj. | YES | no | no | no | no | no | no | no | no | YES | 6.5 | YES | YES | YES | YES | no | no | no | no | no | no | no | no | no |
| Unicode category | \p{Letter&} | Matches a single Unicode code point that is in the uppercase letter, lowercase letter, or titlecase letter category. | \p{Letter&} matches A, a, and Lj. | YES | no | no | no | no | no | no | no | no | no | no | no | no | no | no | no | no | no | no | no | no | no | no | no |
| Unicode category | \p{Lc} | Matches a single Unicode code point that is in the uppercase letter, lowercase letter, or titlecase letter category. | \p{Lc} matches A, a, and Lj. | no | no | with /u | no | YES | no | 6 | YES | no | YES | no | 10.40 | 8.2.0 | no | 4.2.2 | 2.0 | no | no | no | no | no | no | no | no |
| Unicode category | \p{Cased_Letter} | Matches a single Unicode code point that is in the uppercase letter, lowercase letter, or titlecase letter category. | \p{Cased_Letter} matches A, a, and Lj. | V2 | no | no | no | YES | no | no | YES | no | YES | no | no | no | no | no | 2.0 | no | no | no | no | no | no | no | no |
| Feature | Syntax | Description | Example | JGsoft | Python | JavaScript | VBScript | XRegExp | .NET | Java | ICU | RE2 | Perl | PCRE | PCRE2 | PHP | Delphi | R | Ruby | std::regex | Boost | Tcl | POSIX | GNU | Oracle | XML | XPath |
| Quick Start | Tutorial | Search & Replace | Tools & Languages | Examples | Reference |
| Introduction | Table of Contents | Quick Reference | Characters | Basic Features | Character Classes | Shorthands | Anchors | Word Boundaries | Quantifiers | Capturing Groups & Backreferences | Named Groups & Backreferences | Special Groups | Unicode Characters and Properties | Unicode Versions | Unicode Categories | Unicode Scripts | Unicode Blocks | Unicode Binary Properties | Unicode Property Sets | Unicode Boundaries | Mode Modifiers | Recursion & Balancing Groups | Backtracking Control Verbs |
| Characters | Matched Text & Backreferences | Case Conversion | Context | Conditionals |
Page URL: https://www.regular-expressions.info/refunicodecategory.html
Page last updated: 19 June 2025
Site last updated: 29 October 2025
Copyright © 2003-2025 Jan Goyvaerts. All rights reserved.