https://github.com/yaphott/unified-regex
Comparing regex character matching in multiple languages.
https://github.com/yaphott/unified-regex
cpp go golang haskell java javascript objective-c perl php python python3 regex regex-match regex-pattern ruby rust scala
Last synced: 2 months ago
JSON representation
Comparing regex character matching in multiple languages.
- Host: GitHub
- URL: https://github.com/yaphott/unified-regex
- Owner: yaphott
- Created: 2023-09-06T01:49:46.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-10-29T20:58:09.000Z (over 2 years ago)
- Last Synced: 2025-05-21T21:41:03.673Z (about 1 year ago)
- Topics: cpp, go, golang, haskell, java, javascript, objective-c, perl, php, python, python3, regex, regex-match, regex-pattern, ruby, rust, scala
- Language: Python
- Homepage:
- Size: 134 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Unified Regex
This project compares which characters that regex patterns will match in different languages.
- [Usage](#usage)
- [Understanding the results](#understanding-the-results)
- [Notes and Issues](#notes-and-issues)
- [Tables of Contents](#tables-of-contents)
Each language has a folder with an application that accepts two input arguments: a regex pattern and the file path to write the results.
The application iterates over all UTF-8 characters (`U+000000` to `U+10FFFF`) and writes the characters that match the file as hexadecimal codepoints.
The results are then compared to the results of other languages.
Supported Languages:
- [ ] C
- [ ] C#
- [x] C++
- [x] Go
- [x] Haskell
- [x] Java
- [x] JavaScript
- [ ] Kotlin
- [x] Objective-C
- [x] Perl
- [x] PHP
- [x] Python
- [x] Ruby
- [x] Rust
- [x] Scala
- [ ] Swift
- [ ] **Your PR here**
The goal of this project is to:
- Learn more about regex implementations in multiple languages.
- Explore similarities/differences between implementations.
- Consider the viability of creating patterns (in each language) to match other languages.
- Consider the viability of creating optimal regex patterns for character classes.
- Consider the viability of creating optimal regex patterns that "match all languages".
- Keep a lookout for possible bugs in regex implementations.
**Disclaimer**: This project is a work in progress.
There are still many improvements to be made.
**Want to contribute? Create a PR with your changes.**
Please include a link to the language's regex implementation documentation and any other relevant information.
## Usage
- Requires Python 3.10+.
- Ubuntu 22.04+ is recommended.
- Run commands from the root directory.
Run tests:
```bash
python3 -m pytest tests
bash result_validator/tests/test_validate.sh
```
Generate output files:
```bash
bash run.sh
```
[](https://www.youtube.com/watch?v=D6l2UpxQ1hQ "Unified Regex - Generate Output Files")
Create README.md files:
```bash
python3 create_readme.py
```
[](https://www.youtube.com/watch?v=_2pdbD02uaM "Unified Regex - Create Readme Files")
Patterns are located in the [patterns](patterns) directory.
Each file is named after the category and contains a JSON object with the pattern name as the key and the pattern expression as the value.
Commands for each language are defined in [commands.json](commands.json).
- Build:
- Entry for each language is **optional**.
- **Order has no effect** on the build process.
- Base (Run):
- Entry for each language is **required**.
- Commands are **run in the order they appear in the file**.
- Clean:
- Entry for each language is **optional**.
- **Order has no effect** on the clean up process.
> Commands are run in a new shell process, so any changes to the environment will not persist.
Each application will generate a file for each pattern for each category in the language's output directory.
The file will contain the codepoints that matched the pattern.
## Understanding the results
Each table shows the results of running the given regex pattern in the **row language against the column language**.
| Language | A | B |
| :------- | ---: | ---: |
| A | — | +118
4095
-15 |
| B | -118
4095
+15 | — |
Each cell contains 3 values:
- **Top**: Number of characters that **matched for the row language but not the column language**.
- **Middle**: Number of characters that **matched for both the row and column language**.
- **Bottom**: Number of characters that **matched for the column language but not the row language**.
The chart above would indicate that the pattern matches 118 characters in language A that it doesn't in language B, while language B matches 15 characters that language A does not.
The middle cell indicates that there are 4095 characters that match the pattern in both languages.
## Notes and Issues
### Python
Python's regex implementation does not support POSIX character classes. The [google-re2](https://pypi.python.org/pypi/google-re2) package is used instead.
### Haskell
There are multiple implementations of regex in Haskell, but regex-pcre appears to be the most popular flavor (at the time of writing this) the supports many character classes.
However, it is worth noting that this package is simply wrapping the [pcre-c](http://www.pcre.org/) library.
### C++
The C++ regex implementation does not support POSIX character classes.
## Tables of Contents
### Individual Results
Click a language to navigate to the individual results.
- [C++](c++)
- [Go](go)
- [Haskell](haskell)
- [Java](java)
- [Javascript](javascript)
- [Obj-C](objc)
- [Perl](perl)
- [PHP](php)
- [Python](python)
- [Ruby](ruby)
- [Rust](rust)
- [Scala](scala)
### Overall Results
1. [Character Classes - ASCII](#character-classes---ascii)
- [Uppercase Letter](#character-classes---ascii---uppercase-letter-upper) (`[[:upper:]]`)
- [Lowercase Letter](#character-classes---ascii---lowercase-letter-lower) (`[[:lower:]]`)
- [Letter And Digit](#character-classes---ascii---letter-and-digit-alnum) (`[[:alnum:]]`)
- [Letter](#character-classes---ascii---letter-alpha) (`[[:alpha:]]`)
- [ASCII Character](#character-classes---ascii---ascii-character-ascii) (`[[:ascii:]]`)
- [Space And Tab](#character-classes---ascii---space-and-tab-blank) (`[[:blank:]]`)
- [Control Character](#character-classes---ascii---control-character-cntrl) (`[[:cntrl:]]`)
- [Digit](#character-classes---ascii---digit-digit) (`[[:digit:]]`)
- [Visible Character](#character-classes---ascii---visible-character-graph) (`[[:graph:]]`)
- [Printable](#character-classes---ascii---printable-print) (`[[:print:]]`)
- [Punctuation](#character-classes---ascii---punctuation-punct) (`[[:punct:]]`)
- [Whitespace](#character-classes---ascii---whitespace-space) (`[[:space:]]`)
- [Word Character](#character-classes---ascii---word-character-word) (`[[:word:]]`)
- [Hexadecimal Digit](#character-classes---ascii---hexadecimal-digit-xdigit) (`[[:xdigit:]]`)
2. [Character Classes - POSIX - Short](#character-classes---posix---short)
- [Uppercase Letter](#character-classes---posix---short---uppercase-letter-plu) (`[\p{Lu}]`)
- [Lowercase Letter](#character-classes---posix---short---lowercase-letter-pll) (`[\p{Ll}]`)
- [Titlecase Letter](#character-classes---posix---short---titlecase-letter-plt) (`[\p{Lt}]`)
- [Cased Letter](#character-classes---posix---short---cased-letter-plc) (`[\p{LC}]`)
- [Cased Letter Amp](#character-classes---posix---short---cased-letter-amp-pl) (`[\p{L&}]`)
- [Modifier Letter](#character-classes---posix---short---modifier-letter-plm) (`[\p{Lm}]`)
- [Other Letter](#character-classes---posix---short---other-letter-plo) (`[\p{Lo}]`)
- [Letter](#character-classes---posix---short---letter-pl) (`[\p{L}]`)
- [Nonspacing Mark](#character-classes---posix---short---nonspacing-mark-pmn) (`[\p{Mn}]`)
- [Spacing Mark](#character-classes---posix---short---spacing-mark-pmc) (`[\p{Mc}]`)
- [Enclosing Mark](#character-classes---posix---short---enclosing-mark-pme) (`[\p{Me}]`)
- [Mark](#character-classes---posix---short---mark-pm) (`[\p{M}]`)
- [Decimal Number](#character-classes---posix---short---decimal-number-pnd) (`[\p{Nd}]`)
- [Letter Number](#character-classes---posix---short---letter-number-pnl) (`[\p{Nl}]`)
- [Other Number](#character-classes---posix---short---other-number-pno) (`[\p{No}]`)
- [Number](#character-classes---posix---short---number-pn) (`[\p{N}]`)
- [Connector Punctuation](#character-classes---posix---short---connector-punctuation-ppc) (`[\p{Pc}]`)
- [Dash Punctuation](#character-classes---posix---short---dash-punctuation-ppd) (`[\p{Pd}]`)
- [Open Punctuation](#character-classes---posix---short---open-punctuation-pps) (`[\p{Ps}]`)
- [Close Punctuation](#character-classes---posix---short---close-punctuation-ppe) (`[\p{Pe}]`)
- [Initial Punctuation](#character-classes---posix---short---initial-punctuation-ppi) (`[\p{Pi}]`)
- [Final Punctuation](#character-classes---posix---short---final-punctuation-ppf) (`[\p{Pf}]`)
- [Other Punctuation](#character-classes---posix---short---other-punctuation-ppo) (`[\p{Po}]`)
- [Punctuation](#character-classes---posix---short---punctuation-pp) (`[\p{P}]`)
- [Math Symbol](#character-classes---posix---short---math-symbol-psm) (`[\p{Sm}]`)
- [Currency Symbol](#character-classes---posix---short---currency-symbol-psc) (`[\p{Sc}]`)
- [Modifier Symbol](#character-classes---posix---short---modifier-symbol-psk) (`[\p{Sk}]`)
- [Other Symbol](#character-classes---posix---short---other-symbol-pso) (`[\p{So}]`)
- [Symbol](#character-classes---posix---short---symbol-ps) (`[\p{S}]`)
- [Space Separator](#character-classes---posix---short---space-separator-pzs) (`[\p{Zs}]`)
- [Line Separator](#character-classes---posix---short---line-separator-pzl) (`[\p{Zl}]`)
- [Paragraph Separator](#character-classes---posix---short---paragraph-separator-pzp) (`[\p{Zp}]`)
- [Separator](#character-classes---posix---short---separator-pz) (`[\p{Z}]`)
- [Control](#character-classes---posix---short---control-pcc) (`[\p{Cc}]`)
- [Format](#character-classes---posix---short---format-pcf) (`[\p{Cf}]`)
- [Surrogate](#character-classes---posix---short---surrogate-pcs) (`[\p{Cs}]`)
- [Private Use](#character-classes---posix---short---private-use-pco) (`[\p{Co}]`)
- [Unassigned](#character-classes---posix---short---unassigned-pcn) (`[\p{Cn}]`)
- [Other](#character-classes---posix---short---other-pc) (`[\p{C}]`)
3. [Character Classes - POSIX - Long](#character-classes---posix---long)
- [Uppercase Letter](#character-classes---posix---long---uppercase-letter-puppercase_letter) (`[\p{Uppercase_Letter}]`)
- [Lowercase Letter](#character-classes---posix---long---lowercase-letter-plowercase_letter) (`[\p{Lowercase_Letter}]`)
- [Titlecase Letter](#character-classes---posix---long---titlecase-letter-ptitlecase_letter) (`[\p{Titlecase_Letter}]`)
- [Cased Letter](#character-classes---posix---long---cased-letter-pcased_letter) (`[\p{Cased_Letter}]`)
- [Modifier Letter](#character-classes---posix---long---modifier-letter-pmodifier_letter) (`[\p{Modifier_Letter}]`)
- [Other Letter](#character-classes---posix---long---other-letter-pother_letter) (`[\p{Other_Letter}]`)
- [Letter](#character-classes---posix---long---letter-pletter) (`[\p{Letter}]`)
- [Nonspacing Mark](#character-classes---posix---long---nonspacing-mark-pnonspacing_mark) (`[\p{Nonspacing_Mark}]`)
- [Spacing Mark](#character-classes---posix---long---spacing-mark-pspacing_mark) (`[\p{Spacing_Mark}]`)
- [Enclosing Mark](#character-classes---posix---long---enclosing-mark-penclosing_mark) (`[\p{Enclosing_Mark}]`)
- [Mark](#character-classes---posix---long---mark-pmark) (`[\p{Mark}]`)
- [Decimal Number](#character-classes---posix---long---decimal-number-pdecimal_number) (`[\p{Decimal_Number}]`)
- [Letter Number](#character-classes---posix---long---letter-number-pletter_number) (`[\p{Letter_Number}]`)
- [Other Number](#character-classes---posix---long---other-number-pother_number) (`[\p{Other_Number}]`)
- [Number](#character-classes---posix---long---number-pnumber) (`[\p{Number}]`)
- [Connector Punctuation](#character-classes---posix---long---connector-punctuation-pconnector_punctuation) (`[\p{Connector_Punctuation}]`)
- [Dash Punctuation](#character-classes---posix---long---dash-punctuation-pdash_punctuation) (`[\p{Dash_Punctuation}]`)
- [Open Punctuation](#character-classes---posix---long---open-punctuation-popen_punctuation) (`[\p{Open_Punctuation}]`)
- [Close Punctuation](#character-classes---posix---long---close-punctuation-pclose_punctuation) (`[\p{Close_Punctuation}]`)
- [Initial Punctuation](#character-classes---posix---long---initial-punctuation-pinitial_punctuation) (`[\p{Initial_Punctuation}]`)
- [Final Punctuation](#character-classes---posix---long---final-punctuation-pfinal_punctuation) (`[\p{Final_Punctuation}]`)
- [Other Punctuation](#character-classes---posix---long---other-punctuation-pother_punctuation) (`[\p{Other_Punctuation}]`)
- [Punctuation](#character-classes---posix---long---punctuation-ppunctuation) (`[\p{Punctuation}]`)
- [Math Symbol](#character-classes---posix---long---math-symbol-pmath_symbol) (`[\p{Math_Symbol}]`)
- [Currency Symbol](#character-classes---posix---long---currency-symbol-pcurrency_symbol) (`[\p{Currency_Symbol}]`)
- [Modifier Symbol](#character-classes---posix---long---modifier-symbol-pmodifier_symbol) (`[\p{Modifier_Symbol}]`)
- [Other Symbol](#character-classes---posix---long---other-symbol-pother_symbol) (`[\p{Other_Symbol}]`)
- [Symbol](#character-classes---posix---long---symbol-psymbol) (`[\p{Symbol}]`)
- [Space Separator](#character-classes---posix---long---space-separator-pspace_separator) (`[\p{Space_Separator}]`)
- [Line Separator](#character-classes---posix---long---line-separator-pline_separator) (`[\p{Line_Separator}]`)
- [Paragraph Separator](#character-classes---posix---long---paragraph-separator-pparagraph_separator) (`[\p{Paragraph_Separator}]`)
- [Separator](#character-classes---posix---long---separator-pseparator) (`[\p{Separator}]`)
- [Control](#character-classes---posix---long---control-pcontrol) (`[\p{Control}]`)
- [Format](#character-classes---posix---long---format-pformat) (`[\p{Format}]`)
- [Surrogate](#character-classes---posix---long---surrogate-psurrogate) (`[\p{Surrogate}]`)
- [Private Use](#character-classes---posix---long---private-use-pprivate_use) (`[\p{Private_Use}]`)
- [Unassigned](#character-classes---posix---long---unassigned-punassigned) (`[\p{Unassigned}]`)
- [Other](#character-classes---posix---long---other-pother) (`[\p{Other}]`)
---
### Character Classes - ASCII
1. [Uppercase Letter](#character-classes---ascii---uppercase-letter-upper) (`[[:upper:]]`)
2. [Lowercase Letter](#character-classes---ascii---lowercase-letter-lower) (`[[:lower:]]`)
3. [Letter And Digit](#character-classes---ascii---letter-and-digit-alnum) (`[[:alnum:]]`)
4. [Letter](#character-classes---ascii---letter-alpha) (`[[:alpha:]]`)
5. [ASCII Character](#character-classes---ascii---ascii-character-ascii) (`[[:ascii:]]`)
6. [Space And Tab](#character-classes---ascii---space-and-tab-blank) (`[[:blank:]]`)
7. [Control Character](#character-classes---ascii---control-character-cntrl) (`[[:cntrl:]]`)
8. [Digit](#character-classes---ascii---digit-digit) (`[[:digit:]]`)
9. [Visible Character](#character-classes---ascii---visible-character-graph) (`[[:graph:]]`)
10. [Printable](#character-classes---ascii---printable-print) (`[[:print:]]`)
11. [Punctuation](#character-classes---ascii---punctuation-punct) (`[[:punct:]]`)
12. [Whitespace](#character-classes---ascii---whitespace-space) (`[[:space:]]`)
13. [Word Character](#character-classes---ascii---word-character-word) (`[[:word:]]`)
14. [Hexadecimal Digit](#character-classes---ascii---hexadecimal-digit-xdigit) (`[[:xdigit:]]`)
#### Character Classes - ASCII - Uppercase Letter (`[[:upper:]]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ----: | ----: | ------: | ----: | ---------: | ----: | ----: | ----: | -----: | ----: | ----: | ----: |
| C++ | — | +0
26
-0 | +0
26
-0 | +26
0
-5 | +26
0
-0 | +0
26
-1925 | +0
26
-1855 | +0
26
-1805 | +0
26
-0 | +0
26
-1882 | +0
26
-0 | +26
0
-5 |
| Go | +0
26
-0 | — | +0
26
-0 | +26
0
-5 | +26
0
-0 | +0
26
-1925 | +0
26
-1855 | +0
26
-1805 | +0
26
-0 | +0
26
-1882 | +0
26
-0 | +26
0
-5 |
| Haskell | +0
26
-0 | +0
26
-0 | — | +26
0
-5 | +26
0
-0 | +0
26
-1925 | +0
26
-1855 | +0
26
-1805 | +0
26
-0 | +0
26
-1882 | +0
26
-0 | +26
0
-5 |
| Java | +5
0
-26 | +5
0
-26 | +5
0
-26 | — | +5
0
-0 | +5
0
-1951 | +5
0
-1881 | +5
0
-1831 | +5
0
-26 | +5
0
-1908 | +5
0
-26 | +0
5
-0 |
| Javascript | +0
0
-26 | +0
0
-26 | +0
0
-26 | +0
0
-5 | — | +0
0
-1951 | +0
0
-1881 | +0
0
-1831 | +0
0
-26 | +0
0
-1908 | +0
0
-26 | +0
0
-5 |
| Obj-C | +1925
26
-0 | +1925
26
-0 | +1925
26
-0 | +1951
0
-5 | +1951
0
-0 | — | +70
1881
-0 | +120
1831
-0 | +1925
26
-0 | +43
1908
-0 | +1925
26
-0 | +1951
0
-5 |
| Perl | +1855
26
-0 | +1855
26
-0 | +1855
26
-0 | +1881
0
-5 | +1881
0
-0 | +0
1881
-70 | — | +120
1761
-70 | +1855
26
-0 | +3
1878
-30 | +1855
26
-0 | +1881
0
-5 |
| PHP | +1805
26
-0 | +1805
26
-0 | +1805
26
-0 | +1831
0
-5 | +1831
0
-0 | +0
1831
-120 | +70
1761
-120 | — | +1805
26
-0 | +43
1788
-120 | +1805
26
-0 | +1831
0
-5 |
| Python | +0
26
-0 | +0
26
-0 | +0
26
-0 | +26
0
-5 | +26
0
-0 | +0
26
-1925 | +0
26
-1855 | +0
26
-1805 | — | +0
26
-1882 | +0
26
-0 | +26
0
-5 |
| Ruby | +1882
26
-0 | +1882
26
-0 | +1882
26
-0 | +1908
0
-5 | +1908
0
-0 | +0
1908
-43 | +30
1878
-3 | +120
1788
-43 | +1882
26
-0 | — | +1882
26
-0 | +1908
0
-5 |
| Rust | +0
26
-0 | +0
26
-0 | +0
26
-0 | +26
0
-5 | +26
0
-0 | +0
26
-1925 | +0
26
-1855 | +0
26
-1805 | +0
26
-0 | +0
26
-1882 | — | +26
0
-5 |
| Scala | +5
0
-26 | +5
0
-26 | +5
0
-26 | +0
5
-0 | +5
0
-0 | +5
0
-1951 | +5
0
-1881 | +5
0
-1831 | +5
0
-26 | +5
0
-1908 | +5
0
-26 | — |
#### Character Classes - ASCII - Lowercase Letter (`[[:lower:]]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ----: | ----: | ------: | ----: | ---------: | ----: | ----: | ----: | -----: | ----: | ----: | ----: |
| C++ | — | +0
26
-0 | +0
26
-0 | +21
5
-1 | +26
0
-0 | +0
26
-2445 | +0
26
-2283 | +0
26
-2201 | +0
26
-0 | +0
26
-2314 | +0
26
-0 | +21
5
-1 |
| Go | +0
26
-0 | — | +0
26
-0 | +21
5
-1 | +26
0
-0 | +0
26
-2445 | +0
26
-2283 | +0
26
-2201 | +0
26
-0 | +0
26
-2314 | +0
26
-0 | +21
5
-1 |
| Haskell | +0
26
-0 | +0
26
-0 | — | +21
5
-1 | +26
0
-0 | +0
26
-2445 | +0
26
-2283 | +0
26
-2201 | +0
26
-0 | +0
26
-2314 | +0
26
-0 | +21
5
-1 |
| Java | +1
5
-21 | +1
5
-21 | +1
5
-21 | — | +6
0
-0 | +1
5
-2466 | +1
5
-2304 | +1
5
-2222 | +1
5
-21 | +1
5
-2335 | +1
5
-21 | +0
6
-0 |
| Javascript | +0
0
-26 | +0
0
-26 | +0
0
-26 | +0
0
-6 | — | +0
0
-2471 | +0
0
-2309 | +0
0
-2227 | +0
0
-26 | +0
0
-2340 | +0
0
-26 | +0
0
-6 |
| Obj-C | +2445
26
-0 | +2445
26
-0 | +2445
26
-0 | +2466
5
-1 | +2471
0
-0 | — | +162
2309
-0 | +244
2227
-0 | +2445
26
-0 | +131
2340
-0 | +2445
26
-0 | +2466
5
-1 |
| Perl | +2283
26
-0 | +2283
26
-0 | +2283
26
-0 | +2304
5
-1 | +2309
0
-0 | +0
2309
-162 | — | +187
2122
-105 | +2283
26
-0 | +4
2305
-35 | +2283
26
-0 | +2304
5
-1 |
| PHP | +2201
26
-0 | +2201
26
-0 | +2201
26
-0 | +2222
5
-1 | +2227
0
-0 | +0
2227
-244 | +105
2122
-187 | — | +2201
26
-0 | +76
2151
-189 | +2201
26
-0 | +2222
5
-1 |
| Python | +0
26
-0 | +0
26
-0 | +0
26
-0 | +21
5
-1 | +26
0
-0 | +0
26
-2445 | +0
26
-2283 | +0
26
-2201 | — | +0
26
-2314 | +0
26
-0 | +21
5
-1 |
| Ruby | +2314
26
-0 | +2314
26
-0 | +2314
26
-0 | +2335
5
-1 | +2340
0
-0 | +0
2340
-131 | +35
2305
-4 | +189
2151
-76 | +2314
26
-0 | — | +2314
26
-0 | +2335
5
-1 |
| Rust | +0
26
-0 | +0
26
-0 | +0
26
-0 | +21
5
-1 | +26
0
-0 | +0
26
-2445 | +0
26
-2283 | +0
26
-2201 | +0
26
-0 | +0
26
-2314 | — | +21
5
-1 |
| Scala | +1
5
-21 | +1
5
-21 | +1
5
-21 | +0
6
-0 | +6
0
-0 | +1
5
-2466 | +1
5
-2304 | +1
5
-2222 | +1
5
-21 | +1
5
-2335 | +1
5
-21 | — |
#### Character Classes - ASCII - Letter And Digit (`[[:alnum:]]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ------: | ------: | ------: | ------: | ---------: | ------: | ------: | ------: | ------: | ------: | ------: | ------: |
| C++ | — | +0
62
-0 | +0
62
-0 | +57
5
-1 | +62
0
-0 | +0
62
-133994 | +0
62
-133398 | +0
62
-133485 | +0
62
-0 | +0
62
-127824 | +0
62
-0 | +57
5
-1 |
| Go | +0
62
-0 | — | +0
62
-0 | +57
5
-1 | +62
0
-0 | +0
62
-133994 | +0
62
-133398 | +0
62
-133485 | +0
62
-0 | +0
62
-127824 | +0
62
-0 | +57
5
-1 |
| Haskell | +0
62
-0 | +0
62
-0 | — | +57
5
-1 | +62
0
-0 | +0
62
-133994 | +0
62
-133398 | +0
62
-133485 | +0
62
-0 | +0
62
-127824 | +0
62
-0 | +57
5
-1 |
| Java | +1
5
-57 | +1
5
-57 | +1
5
-57 | — | +6
0
-0 | +1
5
-134051 | +1
5
-133455 | +1
5
-133542 | +1
5
-57 | +1
5
-127881 | +1
5
-57 | +0
6
-0 |
| Javascript | +0
0
-62 | +0
0
-62 | +0
0
-62 | +0
0
-6 | — | +0
0
-134056 | +0
0
-133460 | +0
0
-133547 | +0
0
-62 | +0
0
-127886 | +0
0
-62 | +0
0
-6 |
| Obj-C | +133994
62
-0 | +133994
62
-0 | +133994
62
-0 | +134051
5
-1 | +134056
0
-0 | — | +596
133460
-0 | +1404
132652
-895 | +133994
62
-0 | +6170
127886
-0 | +133994
62
-0 | +134051
5
-1 |
| Perl | +133398
62
-0 | +133398
62
-0 | +133398
62
-0 | +133455
5
-1 | +133460
0
-0 | +0
133460
-596 | — | +1398
132062
-1485 | +133398
62
-0 | +5639
127821
-65 | +133398
62
-0 | +133455
5
-1 |
| PHP | +133485
62
-0 | +133485
62
-0 | +133485
62
-0 | +133542
5
-1 | +133547
0
-0 | +895
132652
-1404 | +1485
132062
-1398 | — | +133485
62
-0 | +7038
126509
-1377 | +133485
62
-0 | +133542
5
-1 |
| Python | +0
62
-0 | +0
62
-0 | +0
62
-0 | +57
5
-1 | +62
0
-0 | +0
62
-133994 | +0
62
-133398 | +0
62
-133485 | — | +0
62
-127824 | +0
62
-0 | +57
5
-1 |
| Ruby | +127824
62
-0 | +127824
62
-0 | +127824
62
-0 | +127881
5
-1 | +127886
0
-0 | +0
127886
-6170 | +65
127821
-5639 | +1377
126509
-7038 | +127824
62
-0 | — | +127824
62
-0 | +127881
5
-1 |
| Rust | +0
62
-0 | +0
62
-0 | +0
62
-0 | +57
5
-1 | +62
0
-0 | +0
62
-133994 | +0
62
-133398 | +0
62
-133485 | +0
62
-0 | +0
62
-127824 | — | +57
5
-1 |
| Scala | +1
5
-57 | +1
5
-57 | +1
5
-57 | +0
6
-0 | +6
0
-0 | +1
5
-134051 | +1
5
-133455 | +1
5
-133542 | +1
5
-57 | +1
5
-127881 | +1
5
-57 | — |
#### Character Classes - ASCII - Letter (`[[:alpha:]]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ------: | ------: | ------: | ------: | ---------: | ------: | ------: | ------: | ------: | ------: | ------: | ------: |
| C++ | — | +0
52
-0 | +0
52
-0 | +48
4
-1 | +52
0
-0 | +0
52
-133344 | +0
52
-132758 | +0
52
-131704 | +0
52
-0 | +0
52
-127204 | +0
52
-0 | +48
4
-1 |
| Go | +0
52
-0 | — | +0
52
-0 | +48
4
-1 | +52
0
-0 | +0
52
-133344 | +0
52
-132758 | +0
52
-131704 | +0
52
-0 | +0
52
-127204 | +0
52
-0 | +48
4
-1 |
| Haskell | +0
52
-0 | +0
52
-0 | — | +48
4
-1 | +52
0
-0 | +0
52
-133344 | +0
52
-132758 | +0
52
-131704 | +0
52
-0 | +0
52
-127204 | +0
52
-0 | +48
4
-1 |
| Java | +1
4
-48 | +1
4
-48 | +1
4
-48 | — | +5
0
-0 | +1
4
-133392 | +1
4
-132806 | +1
4
-131752 | +1
4
-48 | +1
4
-127252 | +1
4
-48 | +0
5
-0 |
| Javascript | +0
0
-52 | +0
0
-52 | +0
0
-52 | +0
0
-5 | — | +0
0
-133396 | +0
0
-132810 | +0
0
-131756 | +0
0
-52 | +0
0
-127256 | +0
0
-52 | +0
0
-5 |
| Obj-C | +133344
52
-0 | +133344
52
-0 | +133344
52
-0 | +133392
4
-1 | +133396
0
-0 | — | +586
132810
-0 | +1640
131756
-0 | +133344
52
-0 | +6140
127256
-0 | +133344
52
-0 | +133392
4
-1 |
| Perl | +132758
52
-0 | +132758
52
-0 | +132758
52
-0 | +132806
4
-1 | +132810
0
-0 | +0
132810
-586 | — | +1634
131176
-580 | +132758
52
-0 | +5619
127191
-65 | +132758
52
-0 | +132806
4
-1 |
| PHP | +131704
52
-0 | +131704
52
-0 | +131704
52
-0 | +131752
4
-1 | +131756
0
-0 | +0
131756
-1640 | +580
131176
-1634 | — | +131704
52
-0 | +6113
125643
-1613 | +131704
52
-0 | +131752
4
-1 |
| Python | +0
52
-0 | +0
52
-0 | +0
52
-0 | +48
4
-1 | +52
0
-0 | +0
52
-133344 | +0
52
-132758 | +0
52
-131704 | — | +0
52
-127204 | +0
52
-0 | +48
4
-1 |
| Ruby | +127204
52
-0 | +127204
52
-0 | +127204
52
-0 | +127252
4
-1 | +127256
0
-0 | +0
127256
-6140 | +65
127191
-5619 | +1613
125643
-6113 | +127204
52
-0 | — | +127204
52
-0 | +127252
4
-1 |
| Rust | +0
52
-0 | +0
52
-0 | +0
52
-0 | +48
4
-1 | +52
0
-0 | +0
52
-133344 | +0
52
-132758 | +0
52
-131704 | +0
52
-0 | +0
52
-127204 | — | +48
4
-1 |
| Scala | +1
4
-48 | +1
4
-48 | +1
4
-48 | +0
5
-0 | +5
0
-0 | +1
4
-133392 | +1
4
-132806 | +1
4
-131752 | +1
4
-48 | +1
4
-127252 | +1
4
-48 | — |
#### Character Classes - ASCII - ASCII Character (`[[:ascii:]]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ---: | ---: | ------: | ---: | ---------: | ----: | ---: | ---: | -----: | ---: | ---: | ----: |
| C++ | — | +0
0
-128 | +0
0
-127 | +0
0
-5 | +0
0
-0 | +0
0
-128 | +0
0
-128 | +0
0
-128 | +0
0
-128 | +0
0
-128 | +0
0
-128 | +0
0
-5 |
| Go | +128
0
-0 | — | +1
127
-0 | +123
5
-0 | +128
0
-0 | +0
128
-0 | +0
128
-0 | +0
128
-0 | +0
128
-0 | +0
128
-0 | +0
128
-0 | +123
5
-0 |
| Haskell | +127
0
-0 | +0
127
-1 | — | +122
5
-0 | +127
0
-0 | +0
127
-1 | +0
127
-1 | +0
127
-1 | +0
127
-1 | +0
127
-1 | +0
127
-1 | +122
5
-0 |
| Java | +5
0
-0 | +0
5
-123 | +0
5
-122 | — | +5
0
-0 | +0
5
-123 | +0
5
-123 | +0
5
-123 | +0
5
-123 | +0
5
-123 | +0
5
-123 | +0
5
-0 |
| Javascript | +0
0
-0 | +0
0
-128 | +0
0
-127 | +0
0
-5 | — | +0
0
-128 | +0
0
-128 | +0
0
-128 | +0
0
-128 | +0
0
-128 | +0
0
-128 | +0
0
-5 |
| Obj-C | +128
0
-0 | +0
128
-0 | +1
127
-0 | +123
5
-0 | +128
0
-0 | — | +0
128
-0 | +0
128
-0 | +0
128
-0 | +0
128
-0 | +0
128
-0 | +123
5
-0 |
| Perl | +128
0
-0 | +0
128
-0 | +1
127
-0 | +123
5
-0 | +128
0
-0 | +0
128
-0 | — | +0
128
-0 | +0
128
-0 | +0
128
-0 | +0
128
-0 | +123
5
-0 |
| PHP | +128
0
-0 | +0
128
-0 | +1
127
-0 | +123
5
-0 | +128
0
-0 | +0
128
-0 | +0
128
-0 | — | +0
128
-0 | +0
128
-0 | +0
128
-0 | +123
5
-0 |
| Python | +128
0
-0 | +0
128
-0 | +1
127
-0 | +123
5
-0 | +128
0
-0 | +0
128
-0 | +0
128
-0 | +0
128
-0 | — | +0
128
-0 | +0
128
-0 | +123
5
-0 |
| Ruby | +128
0
-0 | +0
128
-0 | +1
127
-0 | +123
5
-0 | +128
0
-0 | +0
128
-0 | +0
128
-0 | +0
128
-0 | +0
128
-0 | — | +0
128
-0 | +123
5
-0 |
| Rust | +128
0
-0 | +0
128
-0 | +1
127
-0 | +123
5
-0 | +128
0
-0 | +0
128
-0 | +0
128
-0 | +0
128
-0 | +0
128
-0 | +0
128
-0 | — | +123
5
-0 |
| Scala | +5
0
-0 | +0
5
-123 | +0
5
-122 | +0
5
-0 | +5
0
-0 | +0
5
-123 | +0
5
-123 | +0
5
-123 | +0
5
-123 | +0
5
-123 | +0
5
-123 | — |
#### Character Classes - ASCII - Space And Tab (`[[:blank:]]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | --: | --: | ------: | ---: | ---------: | ----: | ---: | --: | -----: | ---: | ---: | ----: |
| C++ | — | +0
2
-0 | +0
2
-0 | +2
0
-6 | +2
0
-0 | +0
2
-16 | +0
2
-15 | +0
2
-17 | +0
2
-0 | +0
2
-16 | +0
2
-0 | +2
0
-6 |
| Go | +0
2
-0 | — | +0
2
-0 | +2
0
-6 | +2
0
-0 | +0
2
-16 | +0
2
-15 | +0
2
-17 | +0
2
-0 | +0
2
-16 | +0
2
-0 | +2
0
-6 |
| Haskell | +0
2
-0 | +0
2
-0 | — | +2
0
-6 | +2
0
-0 | +0
2
-16 | +0
2
-15 | +0
2
-17 | +0
2
-0 | +0
2
-16 | +0
2
-0 | +2
0
-6 |
| Java | +6
0
-2 | +6
0
-2 | +6
0
-2 | — | +6
0
-0 | +6
0
-18 | +6
0
-17 | +6
0
-19 | +6
0
-2 | +6
0
-18 | +6
0
-2 | +0
6
-0 |
| Javascript | +0
0
-2 | +0
0
-2 | +0
0
-2 | +0
0
-6 | — | +0
0
-18 | +0
0
-17 | +0
0
-19 | +0
0
-2 | +0
0
-18 | +0
0
-2 | +0
0
-6 |
| Obj-C | +16
2
-0 | +16
2
-0 | +16
2
-0 | +18
0
-6 | +18
0
-0 | — | +1
17
-0 | +0
18
-1 | +16
2
-0 | +0
18
-0 | +16
2
-0 | +18
0
-6 |
| Perl | +15
2
-0 | +15
2
-0 | +15
2
-0 | +17
0
-6 | +17
0
-0 | +0
17
-1 | — | +0
17
-2 | +15
2
-0 | +0
17
-1 | +15
2
-0 | +17
0
-6 |
| PHP | +17
2
-0 | +17
2
-0 | +17
2
-0 | +19
0
-6 | +19
0
-0 | +1
18
-0 | +2
17
-0 | — | +17
2
-0 | +1
18
-0 | +17
2
-0 | +19
0
-6 |
| Python | +0
2
-0 | +0
2
-0 | +0
2
-0 | +2
0
-6 | +2
0
-0 | +0
2
-16 | +0
2
-15 | +0
2
-17 | — | +0
2
-16 | +0
2
-0 | +2
0
-6 |
| Ruby | +16
2
-0 | +16
2
-0 | +16
2
-0 | +18
0
-6 | +18
0
-0 | +0
18
-0 | +1
17
-0 | +0
18
-1 | +16
2
-0 | — | +16
2
-0 | +18
0
-6 |
| Rust | +0
2
-0 | +0
2
-0 | +0
2
-0 | +2
0
-6 | +2
0
-0 | +0
2
-16 | +0
2
-15 | +0
2
-17 | +0
2
-0 | +0
2
-16 | — | +2
0
-6 |
| Scala | +6
0
-2 | +6
0
-2 | +6
0
-2 | +0
6
-0 | +6
0
-0 | +6
0
-18 | +6
0
-17 | +6
0
-19 | +6
0
-2 | +6
0
-18 | +6
0
-2 | — |
#### Character Classes - ASCII - Control Character (`[[:cntrl:]]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | --: | --: | ------: | ---: | ---------: | ----: | ---: | --: | -----: | ---: | ---: | ----: |
| C++ | — | +0
33
-0 | +1
32
-0 | +33
0
-6 | +33
0
-0 | +0
33
-32 | +0
33
-0 | +0
33
-32 | +0
33
-0 | +0
33
-32 | +0
33
-0 | +33
0
-6 |
| Go | +0
33
-0 | — | +1
32
-0 | +33
0
-6 | +33
0
-0 | +0
33
-32 | +0
33
-0 | +0
33
-32 | +0
33
-0 | +0
33
-32 | +0
33
-0 | +33
0
-6 |
| Haskell | +0
32
-1 | +0
32
-1 | — | +32
0
-6 | +32
0
-0 | +0
32
-33 | +0
32
-1 | +0
32
-33 | +0
32
-1 | +0
32
-33 | +0
32
-1 | +32
0
-6 |
| Java | +6
0
-33 | +6
0
-33 | +6
0
-32 | — | +6
0
-0 | +6
0
-65 | +6
0
-33 | +6
0
-65 | +6
0
-33 | +6
0
-65 | +6
0
-33 | +0
6
-0 |
| Javascript | +0
0
-33 | +0
0
-33 | +0
0
-32 | +0
0
-6 | — | +0
0
-65 | +0
0
-33 | +0
0
-65 | +0
0
-33 | +0
0
-65 | +0
0
-33 | +0
0
-6 |
| Obj-C | +32
33
-0 | +32
33
-0 | +33
32
-0 | +65
0
-6 | +65
0
-0 | — | +32
33
-0 | +0
65
-0 | +32
33
-0 | +0
65
-0 | +32
33
-0 | +65
0
-6 |
| Perl | +0
33
-0 | +0
33
-0 | +1
32
-0 | +33
0
-6 | +33
0
-0 | +0
33
-32 | — | +0
33
-32 | +0
33
-0 | +0
33
-32 | +0
33
-0 | +33
0
-6 |
| PHP | +32
33
-0 | +32
33
-0 | +33
32
-0 | +65
0
-6 | +65
0
-0 | +0
65
-0 | +32
33
-0 | — | +32
33
-0 | +0
65
-0 | +32
33
-0 | +65
0
-6 |
| Python | +0
33
-0 | +0
33
-0 | +1
32
-0 | +33
0
-6 | +33
0
-0 | +0
33
-32 | +0
33
-0 | +0
33
-32 | — | +0
33
-32 | +0
33
-0 | +33
0
-6 |
| Ruby | +32
33
-0 | +32
33
-0 | +33
32
-0 | +65
0
-6 | +65
0
-0 | +0
65
-0 | +32
33
-0 | +0
65
-0 | +32
33
-0 | — | +32
33
-0 | +65
0
-6 |
| Rust | +0
33
-0 | +0
33
-0 | +1
32
-0 | +33
0
-6 | +33
0
-0 | +0
33
-32 | +0
33
-0 | +0
33
-32 | +0
33
-0 | +0
33
-32 | — | +33
0
-6 |
| Scala | +6
0
-33 | +6
0
-33 | +6
0
-32 | +0
6
-0 | +6
0
-0 | +6
0
-65 | +6
0
-33 | +6
0
-65 | +6
0
-33 | +6
0
-65 | +6
0
-33 | — |
#### Character Classes - ASCII - Digit (`[[:digit:]]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ---: | ---: | ------: | ---: | ---------: | ----: | ---: | ---: | -----: | ---: | ---: | ----: |
| C++ | — | +0
10
-0 | +0
10
-0 | +10
0
-5 | +10
0
-0 | +0
10
-650 | +0
10
-640 | +0
10
-650 | +0
10
-0 | +0
10
-620 | +0
10
-0 | +10
0
-5 |
| Go | +0
10
-0 | — | +0
10
-0 | +10
0
-5 | +10
0
-0 | +0
10
-650 | +0
10
-640 | +0
10
-650 | +0
10
-0 | +0
10
-620 | +0
10
-0 | +10
0
-5 |
| Haskell | +0
10
-0 | +0
10
-0 | — | +10
0
-5 | +10
0
-0 | +0
10
-650 | +0
10
-640 | +0
10
-650 | +0
10
-0 | +0
10
-620 | +0
10
-0 | +10
0
-5 |
| Java | +5
0
-10 | +5
0
-10 | +5
0
-10 | — | +5
0
-0 | +5
0
-660 | +5
0
-650 | +5
0
-660 | +5
0
-10 | +5
0
-630 | +5
0
-10 | +0
5
-0 |
| Javascript | +0
0
-10 | +0
0
-10 | +0
0
-10 | +0
0
-5 | — | +0
0
-660 | +0
0
-650 | +0
0
-660 | +0
0
-10 | +0
0
-630 | +0
0
-10 | +0
0
-5 |
| Obj-C | +650
10
-0 | +650
10
-0 | +650
10
-0 | +660
0
-5 | +660
0
-0 | — | +10
650
-0 | +0
660
-0 | +650
10
-0 | +30
630
-0 | +650
10
-0 | +660
0
-5 |
| Perl | +640
10
-0 | +640
10
-0 | +640
10
-0 | +650
0
-5 | +650
0
-0 | +0
650
-10 | — | +0
650
-10 | +640
10
-0 | +20
630
-0 | +640
10
-0 | +650
0
-5 |
| PHP | +650
10
-0 | +650
10
-0 | +650
10
-0 | +660
0
-5 | +660
0
-0 | +0
660
-0 | +10
650
-0 | — | +650
10
-0 | +30
630
-0 | +650
10
-0 | +660
0
-5 |
| Python | +0
10
-0 | +0
10
-0 | +0
10
-0 | +10
0
-5 | +10
0
-0 | +0
10
-650 | +0
10
-640 | +0
10
-650 | — | +0
10
-620 | +0
10
-0 | +10
0
-5 |
| Ruby | +620
10
-0 | +620
10
-0 | +620
10
-0 | +630
0
-5 | +630
0
-0 | +0
630
-30 | +0
630
-20 | +0
630
-30 | +620
10
-0 | — | +620
10
-0 | +630
0
-5 |
| Rust | +0
10
-0 | +0
10
-0 | +0
10
-0 | +10
0
-5 | +10
0
-0 | +0
10
-650 | +0
10
-640 | +0
10
-650 | +0
10
-0 | +0
10
-620 | — | +10
0
-5 |
| Scala | +5
0
-10 | +5
0
-10 | +5
0
-10 | +0
5
-0 | +5
0
-0 | +5
0
-660 | +5
0
-650 | +5
0
-660 | +5
0
-10 | +5
0
-630 | +5
0
-10 | — |
#### Character Classes - ASCII - Visible Character (`[[:graph:]]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ------: | ------: | ------: | ------: | ---------: | ------: | ------: | ------: | ------: | ------: | ------: | ------: |
| C++ | — | +0
94
-0 | +0
94
-0 | +88
6
-0 | +94
0
-0 | +0
94
-282052 | +0
94
-281119 | +0
94
-144578 | +0
94
-0 | +0
94
-275284 | +0
94
-0 | +88
6
-0 |
| Go | +0
94
-0 | — | +0
94
-0 | +88
6
-0 | +94
0
-0 | +0
94
-282052 | +0
94
-281119 | +0
94
-144578 | +0
94
-0 | +0
94
-275284 | +0
94
-0 | +88
6
-0 |
| Haskell | +0
94
-0 | +0
94
-0 | — | +88
6
-0 | +94
0
-0 | +0
94
-282052 | +0
94
-281119 | +0
94
-144578 | +0
94
-0 | +0
94
-275284 | +0
94
-0 | +88
6
-0 |
| Java | +0
6
-88 | +0
6
-88 | +0
6
-88 | — | +6
0
-0 | +0
6
-282140 | +0
6
-281207 | +0
6
-144666 | +0
6
-88 | +0
6
-275372 | +0
6
-88 | +0
6
-0 |
| Javascript | +0
0
-94 | +0
0
-94 | +0
0
-94 | +0
0
-6 | — | +0
0
-282146 | +0
0
-281213 | +0
0
-144672 | +0
0
-94 | +0
0
-275378 | +0
0
-94 | +0
0
-6 |
| Obj-C | +282052
94
-0 | +282052
94
-0 | +282052
94
-0 | +282140
6
-0 | +282146
0
-0 | — | +933
281213
-0 | +137474
144672
-0 | +282052
94
-0 | +6768
275378
-0 | +282052
94
-0 | +282140
6
-0 |
| Perl | +281119
94
-0 | +281119
94
-0 | +281119
94
-0 | +281207
6
-0 | +281213
0
-0 | +0
281213
-933 | — | +137474
143739
-933 | +281119
94
-0 | +5930
275283
-95 | +281119
94
-0 | +281207
6
-0 |
| PHP | +144578
94
-0 | +144578
94
-0 | +144578
94
-0 | +144666
6
-0 | +144672
0
-0 | +0
144672
-137474 | +933
143739
-137474 | — | +144578
94
-0 | +6768
137904
-137474 | +144578
94
-0 | +144666
6
-0 |
| Python | +0
94
-0 | +0
94
-0 | +0
94
-0 | +88
6
-0 | +94
0
-0 | +0
94
-282052 | +0
94
-281119 | +0
94
-144578 | — | +0
94
-275284 | +0
94
-0 | +88
6
-0 |
| Ruby | +275284
94
-0 | +275284
94
-0 | +275284
94
-0 | +275372
6
-0 | +275378
0
-0 | +0
275378
-6768 | +95
275283
-5930 | +137474
137904
-6768 | +275284
94
-0 | — | +275284
94
-0 | +275372
6
-0 |
| Rust | +0
94
-0 | +0
94
-0 | +0
94
-0 | +88
6
-0 | +94
0
-0 | +0
94
-282052 | +0
94
-281119 | +0
94
-144578 | +0
94
-0 | +0
94
-275284 | — | +88
6
-0 |
| Scala | +0
6
-88 | +0
6
-88 | +0
6
-88 | +0
6
-0 | +6
0
-0 | +0
6
-282140 | +0
6
-281207 | +0
6
-144666 | +0
6
-88 | +0
6
-275372 | +0
6
-88 | — |
#### Character Classes - ASCII - Printable (`[[:print:]]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ------: | ------: | ------: | ------: | ---------: | ------: | ------: | ------: | ------: | ------: | ------: | ------: |
| C++ | — | +0
95
-0 | +0
95
-0 | +89
6
-0 | +95
0
-0 | +0
95
-282068 | +0
95
-281134 | +0
95
-144595 | +0
95
-0 | +0
95
-275300 | +0
95
-0 | +89
6
-0 |
| Go | +0
95
-0 | — | +0
95
-0 | +89
6
-0 | +95
0
-0 | +0
95
-282068 | +0
95
-281134 | +0
95
-144595 | +0
95
-0 | +0
95
-275300 | +0
95
-0 | +89
6
-0 |
| Haskell | +0
95
-0 | +0
95
-0 | — | +89
6
-0 | +95
0
-0 | +0
95
-282068 | +0
95
-281134 | +0
95
-144595 | +0
95
-0 | +0
95
-275300 | +0
95
-0 | +89
6
-0 |
| Java | +0
6
-89 | +0
6
-89 | +0
6
-89 | — | +6
0
-0 | +0
6
-282157 | +0
6
-281223 | +0
6
-144684 | +0
6
-89 | +0
6
-275389 | +0
6
-89 | +0
6
-0 |
| Javascript | +0
0
-95 | +0
0
-95 | +0
0
-95 | +0
0
-6 | — | +0
0
-282163 | +0
0
-281229 | +0
0
-144690 | +0
0
-95 | +0
0
-275395 | +0
0
-95 | +0
0
-6 |
| Obj-C | +282068
95
-0 | +282068
95
-0 | +282068
95
-0 | +282157
6
-0 | +282163
0
-0 | — | +934
281229
-0 | +137473
144690
-0 | +282068
95
-0 | +6768
275395
-0 | +282068
95
-0 | +282157
6
-0 |
| Perl | +281134
95
-0 | +281134
95
-0 | +281134
95
-0 | +281223
6
-0 | +281229
0
-0 | +0
281229
-934 | — | +137473
143756
-934 | +281134
95
-0 | +5930
275299
-96 | +281134
95
-0 | +281223
6
-0 |
| PHP | +144595
95
-0 | +144595
95
-0 | +144595
95
-0 | +144684
6
-0 | +144690
0
-0 | +0
144690
-137473 | +934
143756
-137473 | — | +144595
95
-0 | +6768
137922
-137473 | +144595
95
-0 | +144684
6
-0 |
| Python | +0
95
-0 | +0
95
-0 | +0
95
-0 | +89
6
-0 | +95
0
-0 | +0
95
-282068 | +0
95
-281134 | +0
95
-144595 | — | +0
95
-275300 | +0
95
-0 | +89
6
-0 |
| Ruby | +275300
95
-0 | +275300
95
-0 | +275300
95
-0 | +275389
6
-0 | +275395
0
-0 | +0
275395
-6768 | +96
275299
-5930 | +137473
137922
-6768 | +275300
95
-0 | — | +275300
95
-0 | +275389
6
-0 |
| Rust | +0
95
-0 | +0
95
-0 | +0
95
-0 | +89
6
-0 | +95
0
-0 | +0
95
-282068 | +0
95
-281134 | +0
95
-144595 | +0
95
-0 | +0
95
-275300 | — | +89
6
-0 |
| Scala | +0
6
-89 | +0
6
-89 | +0
6
-89 | +0
6
-0 | +6
0
-0 | +0
6
-282157 | +0
6
-281223 | +0
6
-144684 | +0
6
-89 | +0
6
-275389 | +0
6
-89 | — |
#### Character Classes - ASCII - Punctuation (`[[:punct:]]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ---: | ---: | ------: | ---: | ---------: | ----: | ---: | ---: | -----: | ---: | ---: | ----: |
| C++ | — | +0
32
-0 | +0
32
-0 | +31
1
-5 | +32
0
-0 | +9
23
-796 | +0
32
-768 | +0
32
-796 | +0
32
-0 | +0
32
-769 | +0
32
-0 | +31
1
-5 |
| Go | +0
32
-0 | — | +0
32
-0 | +31
1
-5 | +32
0
-0 | +9
23
-796 | +0
32
-768 | +0
32
-796 | +0
32
-0 | +0
32
-769 | +0
32
-0 | +31
1
-5 |
| Haskell | +0
32
-0 | +0
32
-0 | — | +31
1
-5 | +32
0
-0 | +9
23
-796 | +0
32
-768 | +0
32
-796 | +0
32
-0 | +0
32
-769 | +0
32
-0 | +31
1
-5 |
| Java | +5
1
-31 | +5
1
-31 | +5
1
-31 | — | +6
0
-0 | +5
1
-818 | +5
1
-799 | +5
1
-827 | +5
1
-31 | +5
1
-800 | +5
1
-31 | +0
6
-0 |
| Javascript | +0
0
-32 | +0
0
-32 | +0
0
-32 | +0
0
-6 | — | +0
0
-819 | +0
0
-800 | +0
0
-828 | +0
0
-32 | +0
0
-801 | +0
0
-32 | +0
0
-6 |
| Obj-C | +796
23
-9 | +796
23
-9 | +796
23
-9 | +818
1
-5 | +819
0
-0 | — | +28
791
-9 | +0
819
-9 | +796
23
-9 | +27
792
-9 | +796
23
-9 | +818
1
-5 |
| Perl | +768
32
-0 | +768
32
-0 | +768
32
-0 | +799
1
-5 | +800
0
-0 | +9
791
-28 | — | +0
800
-28 | +768
32
-0 | +6
794
-7 | +768
32
-0 | +799
1
-5 |
| PHP | +796
32
-0 | +796
32
-0 | +796
32
-0 | +827
1
-5 | +828
0
-0 | +9
819
-0 | +28
800
-0 | — | +796
32
-0 | +27
801
-0 | +796
32
-0 | +827
1
-5 |
| Python | +0
32
-0 | +0
32
-0 | +0
32
-0 | +31
1
-5 | +32
0
-0 | +9
23
-796 | +0
32
-768 | +0
32
-796 | — | +0
32
-769 | +0
32
-0 | +31
1
-5 |
| Ruby | +769
32
-0 | +769
32
-0 | +769
32
-0 | +800
1
-5 | +801
0
-0 | +9
792
-27 | +7
794
-6 | +0
801
-27 | +769
32
-0 | — | +769
32
-0 | +800
1
-5 |
| Rust | +0
32
-0 | +0
32
-0 | +0
32
-0 | +31
1
-5 | +32
0
-0 | +9
23
-796 | +0
32
-768 | +0
32
-796 | +0
32
-0 | +0
32
-769 | — | +31
1
-5 |
| Scala | +5
1
-31 | +5
1
-31 | +5
1
-31 | +0
6
-0 | +6
0
-0 | +5
1
-818 | +5
1
-799 | +5
1
-827 | +5
1
-31 | +5
1
-800 | +5
1
-31 | — |
#### Character Classes - ASCII - Whitespace (`[[:space:]]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | --: | --: | ------: | ---: | ---------: | ----: | ---: | --: | -----: | ---: | ---: | ----: |
| C++ | — | +0
6
-0 | +0
6
-0 | +6
0
-6 | +6
0
-0 | +0
6
-19 | +0
6
-17 | +0
6
-20 | +0
6
-0 | +0
6
-19 | +0
6
-0 | +6
0
-6 |
| Go | +0
6
-0 | — | +0
6
-0 | +6
0
-6 | +6
0
-0 | +0
6
-19 | +0
6
-17 | +0
6
-20 | +0
6
-0 | +0
6
-19 | +0
6
-0 | +6
0
-6 |
| Haskell | +0
6
-0 | +0
6
-0 | — | +6
0
-6 | +6
0
-0 | +0
6
-19 | +0
6
-17 | +0
6
-20 | +0
6
-0 | +0
6
-19 | +0
6
-0 | +6
0
-6 |
| Java | +6
0
-6 | +6
0
-6 | +6
0
-6 | — | +6
0
-0 | +6
0
-25 | +6
0
-23 | +6
0
-26 | +6
0
-6 | +6
0
-25 | +6
0
-6 | +0
6
-0 |
| Javascript | +0
0
-6 | +0
0
-6 | +0
0
-6 | +0
0
-6 | — | +0
0
-25 | +0
0
-23 | +0
0
-26 | +0
0
-6 | +0
0
-25 | +0
0
-6 | +0
0
-6 |
| Obj-C | +19
6
-0 | +19
6
-0 | +19
6
-0 | +25
0
-6 | +25
0
-0 | — | +2
23
-0 | +0
25
-1 | +19
6
-0 | +0
25
-0 | +19
6
-0 | +25
0
-6 |
| Perl | +17
6
-0 | +17
6
-0 | +17
6
-0 | +23
0
-6 | +23
0
-0 | +0
23
-2 | — | +0
23
-3 | +17
6
-0 | +0
23
-2 | +17
6
-0 | +23
0
-6 |
| PHP | +20
6
-0 | +20
6
-0 | +20
6
-0 | +26
0
-6 | +26
0
-0 | +1
25
-0 | +3
23
-0 | — | +20
6
-0 | +1
25
-0 | +20
6
-0 | +26
0
-6 |
| Python | +0
6
-0 | +0
6
-0 | +0
6
-0 | +6
0
-6 | +6
0
-0 | +0
6
-19 | +0
6
-17 | +0
6
-20 | — | +0
6
-19 | +0
6
-0 | +6
0
-6 |
| Ruby | +19
6
-0 | +19
6
-0 | +19
6
-0 | +25
0
-6 | +25
0
-0 | +0
25
-0 | +2
23
-0 | +0
25
-1 | +19
6
-0 | — | +19
6
-0 | +25
0
-6 |
| Rust | +0
6
-0 | +0
6
-0 | +0
6
-0 | +6
0
-6 | +6
0
-0 | +0
6
-19 | +0
6
-17 | +0
6
-20 | +0
6
-0 | +0
6
-19 | — | +6
0
-6 |
| Scala | +6
0
-6 | +6
0
-6 | +6
0
-6 | +0
6
-0 | +6
0
-0 | +6
0
-25 | +6
0
-23 | +6
0
-26 | +6
0
-6 | +6
0
-25 | +6
0
-6 | — |
#### Character Classes - ASCII - Word Character (`[[:word:]]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ------: | ------: | ------: | ------: | ---------: | ------: | ------: | ------: | ------: | ------: | ------: | ------: |
| C++ | — | +0
0
-63 | +0
0
-63 | +0
0
-5 | +0
0
-0 | +0
0
-135202 | +0
0
-134499 | +0
0
-133548 | +0
0
-63 | +0
0
-128917 | +0
0
-63 | +0
0
-5 |
| Go | +63
0
-0 | — | +0
63
-0 | +59
4
-1 | +63
0
-0 | +0
63
-135139 | +0
63
-134436 | +0
63
-133485 | +0
63
-0 | +0
63
-128854 | +0
63
-0 | +59
4
-1 |
| Haskell | +63
0
-0 | +0
63
-0 | — | +59
4
-1 | +63
0
-0 | +0
63
-135139 | +0
63
-134436 | +0
63
-133485 | +0
63
-0 | +0
63
-128854 | +0
63
-0 | +59
4
-1 |
| Java | +5
0
-0 | +1
4
-59 | +1
4
-59 | — | +5
0
-0 | +1
4
-135198 | +1
4
-134495 | +1
4
-133544 | +1
4
-59 | +1
4
-128913 | +1
4
-59 | +0
5
-0 |
| Javascript | +0
0
-0 | +0
0
-63 | +0
0
-63 | +0
0
-5 | — | +0
0
-135202 | +0
0
-134499 | +0
0
-133548 | +0
0
-63 | +0
0
-128917 | +0
0
-63 | +0
0
-5 |
| Obj-C | +135202
0
-0 | +135139
63
-0 | +135139
63
-0 | +135198
4
-1 | +135202
0
-0 | — | +703
134499
-0 | +2549
132653
-895 | +135139
63
-0 | +6285
128917
-0 | +135139
63
-0 | +135198
4
-1 |
| Perl | +134499
0
-0 | +134436
63
-0 | +134436
63
-0 | +134495
4
-1 | +134499
0
-0 | +0
134499
-703 | — | +2436
132063
-1485 | +134436
63
-0 | +5647
128852
-65 | +134436
63
-0 | +134495
4
-1 |
| PHP | +133548
0
-0 | +133485
63
-0 | +133485
63
-0 | +133544
4
-1 | +133548
0
-0 | +895
132653
-2549 | +1485
132063
-2436 | — | +133485
63
-0 | +7038
126510
-2407 | +133485
63
-0 | +133544
4
-1 |
| Python | +63
0
-0 | +0
63
-0 | +0
63
-0 | +59
4
-1 | +63
0
-0 | +0
63
-135139 | +0
63
-134436 | +0
63
-133485 | — | +0
63
-128854 | +0
63
-0 | +59
4
-1 |
| Ruby | +128917
0
-0 | +128854
63
-0 | +128854
63
-0 | +128913
4
-1 | +128917
0
-0 | +0
128917
-6285 | +65
128852
-5647 | +2407
126510
-7038 | +128854
63
-0 | — | +128854
63
-0 | +128913
4
-1 |
| Rust | +63
0
-0 | +0
63
-0 | +0
63
-0 | +59
4
-1 | +63
0
-0 | +0
63
-135139 | +0
63
-134436 | +0
63
-133485 | +0
63
-0 | +0
63
-128854 | — | +59
4
-1 |
| Scala | +5
0
-0 | +1
4
-59 | +1
4
-59 | +0
5
-0 | +5
0
-0 | +1
4
-135198 | +1
4
-134495 | +1
4
-133544 | +1
4
-59 | +1
4
-128913 | +1
4
-59 | — |
#### Character Classes - ASCII - Hexadecimal Digit (`[[:xdigit:]]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ---: | ---: | ------: | ---: | ---------: | ----: | ---: | ---: | -----: | ---: | ---: | ----: |
| C++ | — | +0
22
-0 | +0
22
-0 | +21
1
-5 | +22
0
-0 | +0
22
-662 | +0
22
-22 | +0
22
-0 | +0
22
-0 | +0
22
-0 | +0
22
-0 | +21
1
-5 |
| Go | +0
22
-0 | — | +0
22
-0 | +21
1
-5 | +22
0
-0 | +0
22
-662 | +0
22
-22 | +0
22
-0 | +0
22
-0 | +0
22
-0 | +0
22
-0 | +21
1
-5 |
| Haskell | +0
22
-0 | +0
22
-0 | — | +21
1
-5 | +22
0
-0 | +0
22
-662 | +0
22
-22 | +0
22
-0 | +0
22
-0 | +0
22
-0 | +0
22
-0 | +21
1
-5 |
| Java | +5
1
-21 | +5
1
-21 | +5
1
-21 | — | +6
0
-0 | +5
1
-683 | +5
1
-43 | +5
1
-21 | +5
1
-21 | +5
1
-21 | +5
1
-21 | +0
6
-0 |
| Javascript | +0
0
-22 | +0
0
-22 | +0
0
-22 | +0
0
-6 | — | +0
0
-684 | +0
0
-44 | +0
0
-22 | +0
0
-22 | +0
0
-22 | +0
0
-22 | +0
0
-6 |
| Obj-C | +662
22
-0 | +662
22
-0 | +662
22
-0 | +683
1
-5 | +684
0
-0 | — | +640
44
-0 | +662
22
-0 | +662
22
-0 | +662
22
-0 | +662
22
-0 | +683
1
-5 |
| Perl | +22
22
-0 | +22
22
-0 | +22
22
-0 | +43
1
-5 | +44
0
-0 | +0
44
-640 | — | +22
22
-0 | +22
22
-0 | +22
22
-0 | +22
22
-0 | +43
1
-5 |
| PHP | +0
22
-0 | +0
22
-0 | +0
22
-0 | +21
1
-5 | +22
0
-0 | +0
22
-662 | +0
22
-22 | — | +0
22
-0 | +0
22
-0 | +0
22
-0 | +21
1
-5 |
| Python | +0
22
-0 | +0
22
-0 | +0
22
-0 | +21
1
-5 | +22
0
-0 | +0
22
-662 | +0
22
-22 | +0
22
-0 | — | +0
22
-0 | +0
22
-0 | +21
1
-5 |
| Ruby | +0
22
-0 | +0
22
-0 | +0
22
-0 | +21
1
-5 | +22
0
-0 | +0
22
-662 | +0
22
-22 | +0
22
-0 | +0
22
-0 | — | +0
22
-0 | +21
1
-5 |
| Rust | +0
22
-0 | +0
22
-0 | +0
22
-0 | +21
1
-5 | +22
0
-0 | +0
22
-662 | +0
22
-22 | +0
22
-0 | +0
22
-0 | +0
22
-0 | — | +21
1
-5 |
| Scala | +5
1
-21 | +5
1
-21 | +5
1
-21 | +0
6
-0 | +6
0
-0 | +5
1
-683 | +5
1
-43 | +5
1
-21 | +5
1
-21 | +5
1
-21 | +5
1
-21 | — |
---
### Character Classes - POSIX - Short
1. [Uppercase Letter](#character-classes---posix---short---uppercase-letter-plu) (`[\p{Lu}]`)
2. [Lowercase Letter](#character-classes---posix---short---lowercase-letter-pll) (`[\p{Ll}]`)
3. [Titlecase Letter](#character-classes---posix---short---titlecase-letter-plt) (`[\p{Lt}]`)
4. [Cased Letter](#character-classes---posix---short---cased-letter-plc) (`[\p{LC}]`)
5. [Cased Letter Amp](#character-classes---posix---short---cased-letter-amp-pl) (`[\p{L&}]`)
6. [Modifier Letter](#character-classes---posix---short---modifier-letter-plm) (`[\p{Lm}]`)
7. [Other Letter](#character-classes---posix---short---other-letter-plo) (`[\p{Lo}]`)
8. [Letter](#character-classes---posix---short---letter-pl) (`[\p{L}]`)
9. [Nonspacing Mark](#character-classes---posix---short---nonspacing-mark-pmn) (`[\p{Mn}]`)
10. [Spacing Mark](#character-classes---posix---short---spacing-mark-pmc) (`[\p{Mc}]`)
11. [Enclosing Mark](#character-classes---posix---short---enclosing-mark-pme) (`[\p{Me}]`)
12. [Mark](#character-classes---posix---short---mark-pm) (`[\p{M}]`)
13. [Decimal Number](#character-classes---posix---short---decimal-number-pnd) (`[\p{Nd}]`)
14. [Letter Number](#character-classes---posix---short---letter-number-pnl) (`[\p{Nl}]`)
15. [Other Number](#character-classes---posix---short---other-number-pno) (`[\p{No}]`)
16. [Number](#character-classes---posix---short---number-pn) (`[\p{N}]`)
17. [Connector Punctuation](#character-classes---posix---short---connector-punctuation-ppc) (`[\p{Pc}]`)
18. [Dash Punctuation](#character-classes---posix---short---dash-punctuation-ppd) (`[\p{Pd}]`)
19. [Open Punctuation](#character-classes---posix---short---open-punctuation-pps) (`[\p{Ps}]`)
20. [Close Punctuation](#character-classes---posix---short---close-punctuation-ppe) (`[\p{Pe}]`)
21. [Initial Punctuation](#character-classes---posix---short---initial-punctuation-ppi) (`[\p{Pi}]`)
22. [Final Punctuation](#character-classes---posix---short---final-punctuation-ppf) (`[\p{Pf}]`)
23. [Other Punctuation](#character-classes---posix---short---other-punctuation-ppo) (`[\p{Po}]`)
24. [Punctuation](#character-classes---posix---short---punctuation-pp) (`[\p{P}]`)
25. [Math Symbol](#character-classes---posix---short---math-symbol-psm) (`[\p{Sm}]`)
26. [Currency Symbol](#character-classes---posix---short---currency-symbol-psc) (`[\p{Sc}]`)
27. [Modifier Symbol](#character-classes---posix---short---modifier-symbol-psk) (`[\p{Sk}]`)
28. [Other Symbol](#character-classes---posix---short---other-symbol-pso) (`[\p{So}]`)
29. [Symbol](#character-classes---posix---short---symbol-ps) (`[\p{S}]`)
30. [Space Separator](#character-classes---posix---short---space-separator-pzs) (`[\p{Zs}]`)
31. [Line Separator](#character-classes---posix---short---line-separator-pzl) (`[\p{Zl}]`)
32. [Paragraph Separator](#character-classes---posix---short---paragraph-separator-pzp) (`[\p{Zp}]`)
33. [Separator](#character-classes---posix---short---separator-pz) (`[\p{Z}]`)
34. [Control](#character-classes---posix---short---control-pcc) (`[\p{Cc}]`)
35. [Format](#character-classes---posix---short---format-pcf) (`[\p{Cf}]`)
36. [Surrogate](#character-classes---posix---short---surrogate-pcs) (`[\p{Cs}]`)
37. [Private Use](#character-classes---posix---short---private-use-pco) (`[\p{Co}]`)
38. [Unassigned](#character-classes---posix---short---unassigned-pcn) (`[\p{Cn}]`)
39. [Other](#character-classes---posix---short---other-pc) (`[\p{C}]`)
#### Character Classes - POSIX - Short - Uppercase Letter (`[\p{Lu}]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ----: | ----: | ------: | ----: | ---------: | ----: | ----: | ----: | -----: | ----: | ----: | ----: |
| C++ | — | +0
0
-1831 | +0
0
-1818 | +0
0
-1791 | +0
0
-1831 | +0
0
-1831 | +0
0
-1791 | +0
0
-1831 | +0
0
-1831 | +0
0
-1788 | +0
0
-1831 | +0
0
-1791 |
| Go | +1831
0
-0 | — | +1363
468
-1350 | +40
1791
-0 | +0
1831
-0 | +0
1831
-0 | +40
1791
-0 | +0
1831
-0 | +0
1831
-0 | +43
1788
-0 | +0
1831
-0 | +40
1791
-0 |
| Haskell | +1818
0
-0 | +1350
468
-1363 | — | +1350
468
-1323 | +1350
468
-1363 | +1350
468
-1363 | +1350
468
-1323 | +1350
468
-1363 | +1350
468
-1363 | +1350
468
-1320 | +1350
468
-1363 | +1350
468
-1323 |
| Java | +1791
0
-0 | +0
1791
-40 | +1323
468
-1350 | — | +0
1791
-40 | +0
1791
-40 | +0
1791
-0 | +0
1791
-40 | +0
1791
-40 | +3
1788
-0 | +0
1791
-40 | +0
1791
-0 |
| Javascript | +1831
0
-0 | +0
1831
-0 | +1363
468
-1350 | +40
1791
-0 | — | +0
1831
-0 | +40
1791
-0 | +0
1831
-0 | +0
1831
-0 | +43
1788
-0 | +0
1831
-0 | +40
1791
-0 |
| Obj-C | +1831
0
-0 | +0
1831
-0 | +1363
468
-1350 | +40
1791
-0 | +0
1831
-0 | — | +40
1791
-0 | +0
1831
-0 | +0
1831
-0 | +43
1788
-0 | +0
1831
-0 | +40
1791
-0 |
| Perl | +1791
0
-0 | +0
1791
-40 | +1323
468
-1350 | +0
1791
-0 | +0
1791
-40 | +0
1791
-40 | — | +0
1791
-40 | +0
1791
-40 | +3
1788
-0 | +0
1791
-40 | +0
1791
-0 |
| PHP | +1831
0
-0 | +0
1831
-0 | +1363
468
-1350 | +40
1791
-0 | +0
1831
-0 | +0
1831
-0 | +40
1791
-0 | — | +0
1831
-0 | +43
1788
-0 | +0
1831
-0 | +40
1791
-0 |
| Python | +1831
0
-0 | +0
1831
-0 | +1363
468
-1350 | +40
1791
-0 | +0
1831
-0 | +0
1831
-0 | +40
1791
-0 | +0
1831
-0 | — | +43
1788
-0 | +0
1831
-0 | +40
1791
-0 |
| Ruby | +1788
0
-0 | +0
1788
-43 | +1320
468
-1350 | +0
1788
-3 | +0
1788
-43 | +0
1788
-43 | +0
1788
-3 | +0
1788
-43 | +0
1788
-43 | — | +0
1788
-43 | +0
1788
-3 |
| Rust | +1831
0
-0 | +0
1831
-0 | +1363
468
-1350 | +40
1791
-0 | +0
1831
-0 | +0
1831
-0 | +40
1791
-0 | +0
1831
-0 | +0
1831
-0 | +43
1788
-0 | — | +40
1791
-0 |
| Scala | +1791
0
-0 | +0
1791
-40 | +1323
468
-1350 | +0
1791
-0 | +0
1791
-40 | +0
1791
-40 | +0
1791
-0 | +0
1791
-40 | +0
1791
-40 | +3
1788
-0 | +0
1791
-40 | — |
#### Character Classes - POSIX - Short - Lowercase Letter (`[\p{Ll}]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | -------: | -------: | -------: | -------: | ---------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: |
| C++ | — | +0
0
-2233 | +0
0
-1112183 | +0
0
-2155 | +0
0
-2233 | +0
0
-2227 | +0
0
-2155 | +0
0
-2227 | +0
0
-2233 | +0
0
-2151 | +0
0
-2233 | +0
0
-2155 |
| Go | +2233
0
-0 | — | +531
1702
-1110481 | +78
2155
-0 | +0
2233
-0 | +6
2227
-0 | +78
2155
-0 | +6
2227
-0 | +0
2233
-0 | +82
2151
-0 | +0
2233
-0 | +78
2155
-0 |
| Haskell | +1112183
0
-0 | +1110481
1702
-531 | — | +1110559
1624
-531 | +1110481
1702
-531 | +1110487
1696
-531 | +1110559
1624
-531 | +1110487
1696
-531 | +1110481
1702
-531 | +1110563
1620
-531 | +1110481
1702
-531 | +1110559
1624
-531 |
| Java | +2155
0
-0 | +0
2155
-78 | +531
1624
-1110559 | — | +0
2155
-78 | +0
2155
-72 | +0
2155
-0 | +0
2155
-72 | +0
2155
-78 | +4
2151
-0 | +0
2155
-78 | +0
2155
-0 |
| Javascript | +2233
0
-0 | +0
2233
-0 | +531
1702
-1110481 | +78
2155
-0 | — | +6
2227
-0 | +78
2155
-0 | +6
2227
-0 | +0
2233
-0 | +82
2151
-0 | +0
2233
-0 | +78
2155
-0 |
| Obj-C | +2227
0
-0 | +0
2227
-6 | +531
1696
-1110487 | +72
2155
-0 | +0
2227
-6 | — | +72
2155
-0 | +0
2227
-0 | +0
2227
-6 | +76
2151
-0 | +0
2227
-6 | +72
2155
-0 |
| Perl | +2155
0
-0 | +0
2155
-78 | +531
1624
-1110559 | +0
2155
-0 | +0
2155
-78 | +0
2155
-72 | — | +0
2155
-72 | +0
2155
-78 | +4
2151
-0 | +0
2155
-78 | +0
2155
-0 |
| PHP | +2227
0
-0 | +0
2227
-6 | +531
1696
-1110487 | +72
2155
-0 | +0
2227
-6 | +0
2227
-0 | +72
2155
-0 | — | +0
2227
-6 | +76
2151
-0 | +0
2227
-6 | +72
2155
-0 |
| Python | +2233
0
-0 | +0
2233
-0 | +531
1702
-1110481 | +78
2155
-0 | +0
2233
-0 | +6
2227
-0 | +78
2155
-0 | +6
2227
-0 | — | +82
2151
-0 | +0
2233
-0 | +78
2155
-0 |
| Ruby | +2151
0
-0 | +0
2151
-82 | +531
1620
-1110563 | +0
2151
-4 | +0
2151
-82 | +0
2151
-76 | +0
2151
-4 | +0
2151
-76 | +0
2151
-82 | — | +0
2151
-82 | +0
2151
-4 |
| Rust | +2233
0
-0 | +0
2233
-0 | +531
1702
-1110481 | +78
2155
-0 | +0
2233
-0 | +6
2227
-0 | +78
2155
-0 | +6
2227
-0 | +0
2233
-0 | +82
2151
-0 | — | +78
2155
-0 |
| Scala | +2155
0
-0 | +0
2155
-78 | +531
1624
-1110559 | +0
2155
-0 | +0
2155
-78 | +0
2155
-72 | +0
2155
-0 | +0
2155
-72 | +0
2155
-78 | +4
2151
-0 | +0
2155
-78 | — |
#### Character Classes - POSIX - Short - Titlecase Letter (`[\p{Lt}]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | --: | --: | ------: | ---: | ---------: | ----: | ---: | --: | -----: | ---: | ---: | ----: |
| C++ | — | +0
0
-31 | +0
0
-0 | +0
0
-31 | +0
0
-31 | +0
0
-31 | +0
0
-31 | +0
0
-31 | +0
0
-31 | +0
0
-31 | +0
0
-31 | +0
0
-31 |
| Go | +31
0
-0 | — | +31
0
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 |
| Haskell | +0
0
-0 | +0
0
-31 | — | +0
0
-31 | +0
0
-31 | +0
0
-31 | +0
0
-31 | +0
0
-31 | +0
0
-31 | +0
0
-31 | +0
0
-31 | +0
0
-31 |
| Java | +31
0
-0 | +0
31
-0 | +31
0
-0 | — | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 |
| Javascript | +31
0
-0 | +0
31
-0 | +31
0
-0 | +0
31
-0 | — | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 |
| Obj-C | +31
0
-0 | +0
31
-0 | +31
0
-0 | +0
31
-0 | +0
31
-0 | — | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 |
| Perl | +31
0
-0 | +0
31
-0 | +31
0
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | — | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 |
| PHP | +31
0
-0 | +0
31
-0 | +31
0
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | — | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 |
| Python | +31
0
-0 | +0
31
-0 | +31
0
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | — | +0
31
-0 | +0
31
-0 | +0
31
-0 |
| Ruby | +31
0
-0 | +0
31
-0 | +31
0
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | — | +0
31
-0 | +0
31
-0 |
| Rust | +31
0
-0 | +0
31
-0 | +31
0
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | — | +0
31
-0 |
| Scala | +31
0
-0 | +0
31
-0 | +31
0
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | +0
31
-0 | — |
#### Character Classes - POSIX - Short - Cased Letter (`[\p{LC}]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ----: | ----: | ------: | ----: | ---------: | ----: | ----: | ----: | -----: | ----: | ----: | ----: |
| C++ | — | +0
0
-0 | +0
0
-0 | +0
0
-3977 | +0
0
-4095 | +0
0
-4089 | +0
0
-3977 | +0
0
-0 | +0
0
-0 | +0
0
-3970 | +0
0
-4095 | +0
0
-3977 |
| Go | +0
0
-0 | — | +0
0
-0 | +0
0
-3977 | +0
0
-4095 | +0
0
-4089 | +0
0
-3977 | +0
0
-0 | +0
0
-0 | +0
0
-3970 | +0
0
-4095 | +0
0
-3977 |
| Haskell | +0
0
-0 | +0
0
-0 | — | +0
0
-3977 | +0
0
-4095 | +0
0
-4089 | +0
0
-3977 | +0
0
-0 | +0
0
-0 | +0
0
-3970 | +0
0
-4095 | +0
0
-3977 |
| Java | +3977
0
-0 | +3977
0
-0 | +3977
0
-0 | — | +0
3977
-118 | +0
3977
-112 | +0
3977
-0 | +3977
0
-0 | +3977
0
-0 | +7
3970
-0 | +0
3977
-118 | +0
3977
-0 |
| Javascript | +4095
0
-0 | +4095
0
-0 | +4095
0
-0 | +118
3977
-0 | — | +6
4089
-0 | +118
3977
-0 | +4095
0
-0 | +4095
0
-0 | +125
3970
-0 | +0
4095
-0 | +118
3977
-0 |
| Obj-C | +4089
0
-0 | +4089
0
-0 | +4089
0
-0 | +112
3977
-0 | +0
4089
-6 | — | +112
3977
-0 | +4089
0
-0 | +4089
0
-0 | +119
3970
-0 | +0
4089
-6 | +112
3977
-0 |
| Perl | +3977
0
-0 | +3977
0
-0 | +3977
0
-0 | +0
3977
-0 | +0
3977
-118 | +0
3977
-112 | — | +3977
0
-0 | +3977
0
-0 | +7
3970
-0 | +0
3977
-118 | +0
3977
-0 |
| PHP | +0
0
-0 | +0
0
-0 | +0
0
-0 | +0
0
-3977 | +0
0
-4095 | +0
0
-4089 | +0
0
-3977 | — | +0
0
-0 | +0
0
-3970 | +0
0
-4095 | +0
0
-3977 |
| Python | +0
0
-0 | +0
0
-0 | +0
0
-0 | +0
0
-3977 | +0
0
-4095 | +0
0
-4089 | +0
0
-3977 | +0
0
-0 | — | +0
0
-3970 | +0
0
-4095 | +0
0
-3977 |
| Ruby | +3970
0
-0 | +3970
0
-0 | +3970
0
-0 | +0
3970
-7 | +0
3970
-125 | +0
3970
-119 | +0
3970
-7 | +3970
0
-0 | +3970
0
-0 | — | +0
3970
-125 | +0
3970
-7 |
| Rust | +4095
0
-0 | +4095
0
-0 | +4095
0
-0 | +118
3977
-0 | +0
4095
-0 | +6
4089
-0 | +118
3977
-0 | +4095
0
-0 | +4095
0
-0 | +125
3970
-0 | — | +118
3977
-0 |
| Scala | +3977
0
-0 | +3977
0
-0 | +3977
0
-0 | +0
3977
-0 | +0
3977
-118 | +0
3977
-112 | +0
3977
-0 | +3977
0
-0 | +3977
0
-0 | +7
3970
-0 | +0
3977
-118 | — |
#### Character Classes - POSIX - Short - Cased Letter Amp (`[\p{L&}]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | -------: | -------: | -------: | -------: | ---------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: |
| C++ | — | +0
0
-0 | +0
0
-1113973 | +0
0
-0 | +0
0
-0 | +0
0
-0 | +0
0
-3977 | +0
0
-4089 | +0
0
-0 | +0
0
-0 | +0
0
-0 | +0
0
-0 |
| Go | +0
0
-0 | — | +0
0
-1113973 | +0
0
-0 | +0
0
-0 | +0
0
-0 | +0
0
-3977 | +0
0
-4089 | +0
0
-0 | +0
0
-0 | +0
0
-0 | +0
0
-0 |
| Haskell | +1113973
0
-0 | +1113973
0
-0 | — | +1113973
0
-0 | +1113973
0
-0 | +1113973
0
-0 | +1109996
3977
-0 | +1109884
4089
-0 | +1113973
0
-0 | +1113973
0
-0 | +1113973
0
-0 | +1113973
0
-0 |
| Java | +0
0
-0 | +0
0
-0 | +0
0
-1113973 | — | +0
0
-0 | +0
0
-0 | +0
0
-3977 | +0
0
-4089 | +0
0
-0 | +0
0
-0 | +0
0
-0 | +0
0
-0 |
| Javascript | +0
0
-0 | +0
0
-0 | +0
0
-1113973 | +0
0
-0 | — | +0
0
-0 | +0
0
-3977 | +0
0
-4089 | +0
0
-0 | +0
0
-0 | +0
0
-0 | +0
0
-0 |
| Obj-C | +0
0
-0 | +0
0
-0 | +0
0
-1113973 | +0
0
-0 | +0
0
-0 | — | +0
0
-3977 | +0
0
-4089 | +0
0
-0 | +0
0
-0 | +0
0
-0 | +0
0
-0 |
| Perl | +3977
0
-0 | +3977
0
-0 | +0
3977
-1109996 | +3977
0
-0 | +3977
0
-0 | +3977
0
-0 | — | +0
3977
-112 | +3977
0
-0 | +3977
0
-0 | +3977
0
-0 | +3977
0
-0 |
| PHP | +4089
0
-0 | +4089
0
-0 | +0
4089
-1109884 | +4089
0
-0 | +4089
0
-0 | +4089
0
-0 | +112
3977
-0 | — | +4089
0
-0 | +4089
0
-0 | +4089
0
-0 | +4089
0
-0 |
| Python | +0
0
-0 | +0
0
-0 | +0
0
-1113973 | +0
0
-0 | +0
0
-0 | +0
0
-0 | +0
0
-3977 | +0
0
-4089 | — | +0
0
-0 | +0
0
-0 | +0
0
-0 |
| Ruby | +0
0
-0 | +0
0
-0 | +0
0
-1113973 | +0
0
-0 | +0
0
-0 | +0
0
-0 | +0
0
-3977 | +0
0
-4089 | +0
0
-0 | — | +0
0
-0 | +0
0
-0 |
| Rust | +0
0
-0 | +0
0
-0 | +0
0
-1113973 | +0
0
-0 | +0
0
-0 | +0
0
-0 | +0
0
-3977 | +0
0
-4089 | +0
0
-0 | +0
0
-0 | — | +0
0
-0 |
| Scala | +0
0
-0 | +0
0
-0 | +0
0
-1113973 | +0
0
-0 | +0
0
-0 | +0
0
-0 | +0
0
-3977 | +0
0
-4089 | +0
0
-0 | +0
0
-0 | +0
0
-0 | — |
#### Character Classes - POSIX - Short - Modifier Letter (`[\p{Lm}]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ---: | ---: | ------: | ---: | ---------: | ----: | ---: | ---: | -----: | ---: | ---: | ----: |
| C++ | — | +0
0
-397 | +0
0
-0 | +0
0
-260 | +0
0
-397 | +0
0
-334 | +0
0
-260 | +0
0
-334 | +0
0
-397 | +0
0
-259 | +0
0
-397 | +0
0
-260 |
| Go | +397
0
-0 | — | +397
0
-0 | +137
260
-0 | +0
397
-0 | +63
334
-0 | +137
260
-0 | +63
334
-0 | +0
397
-0 | +138
259
-0 | +0
397
-0 | +137
260
-0 |
| Haskell | +0
0
-0 | +0
0
-397 | — | +0
0
-260 | +0
0
-397 | +0
0
-334 | +0
0
-260 | +0
0
-334 | +0
0
-397 | +0
0
-259 | +0
0
-397 | +0
0
-260 |
| Java | +260
0
-0 | +0
260
-137 | +260
0
-0 | — | +0
260
-137 | +0
260
-74 | +0
260
-0 | +0
260
-74 | +0
260
-137 | +1
259
-0 | +0
260
-137 | +0
260
-0 |
| Javascript | +397
0
-0 | +0
397
-0 | +397
0
-0 | +137
260
-0 | — | +63
334
-0 | +137
260
-0 | +63
334
-0 | +0
397
-0 | +138
259
-0 | +0
397
-0 | +137
260
-0 |
| Obj-C | +334
0
-0 | +0
334
-63 | +334
0
-0 | +74
260
-0 | +0
334
-63 | — | +74
260
-0 | +0
334
-0 | +0
334
-63 | +75
259
-0 | +0
334
-63 | +74
260
-0 |
| Perl | +260
0
-0 | +0
260
-137 | +260
0
-0 | +0
260
-0 | +0
260
-137 | +0
260
-74 | — | +0
260
-74 | +0
260
-137 | +1
259
-0 | +0
260
-137 | +0
260
-0 |
| PHP | +334
0
-0 | +0
334
-63 | +334
0
-0 | +74
260
-0 | +0
334
-63 | +0
334
-0 | +74
260
-0 | — | +0
334
-63 | +75
259
-0 | +0
334
-63 | +74
260
-0 |
| Python | +397
0
-0 | +0
397
-0 | +397
0
-0 | +137
260
-0 | +0
397
-0 | +63
334
-0 | +137
260
-0 | +63
334
-0 | — | +138
259
-0 | +0
397
-0 | +137
260
-0 |
| Ruby | +259
0
-0 | +0
259
-138 | +259
0
-0 | +0
259
-1 | +0
259
-138 | +0
259
-75 | +0
259
-1 | +0
259
-75 | +0
259
-138 | — | +0
259
-138 | +0
259
-1 |
| Rust | +397
0
-0 | +0
397
-0 | +397
0
-0 | +137
260
-0 | +0
397
-0 | +63
334
-0 | +137
260
-0 | +63
334
-0 | +0
397
-0 | +138
259
-0 | — | +137
260
-0 |
| Scala | +260
0
-0 | +0
260
-137 | +260
0
-0 | +0
260
-0 | +0
260
-137 | +0
260
-74 | +0
260
-0 | +0
260
-74 | +0
260
-137 | +1
259
-0 | +0
260
-137 | — |
#### Character Classes - POSIX - Short - Other Letter (`[\p{Lo}]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ------: | ------: | ------: | ------: | ---------: | ------: | ------: | ------: | ------: | ------: | ------: | ------: |
| C++ | — | +0
0
-131612 | +0
0
-99104 | +0
0
-127004 | +0
0
-131612 | +0
0
-127333 | +0
0
-127004 | +0
0
-127333 | +0
0
-131612 | +0
0
-121414 | +0
0
-131612 | +0
0
-127004 |
| Go | +131612
0
-0 | — | +119852
11760
-87344 | +4608
127004
-0 | +0
131612
-0 | +4279
127333
-0 | +4608
127004
-0 | +4279
127333
-0 | +0
131612
-0 | +10198
121414
-0 | +0
131612
-0 | +4608
127004
-0 |
| Haskell | +99104
0
-0 | +87344
11760
-119852 | — | +87691
11413
-115591 | +87344
11760
-119852 | +87601
11503
-115830 | +87691
11413
-115591 | +87601
11503
-115830 | +87344
11760
-119852 | +88039
11065
-110349 | +87344
11760
-119852 | +87691
11413
-115591 |
| Java | +127004
0
-0 | +0
127004
-4608 | +115591
11413
-87691 | — | +0
127004
-4608 | +0
127004
-329 | +0
127004
-0 | +0
127004
-329 | +0
127004
-4608 | +5590
121414
-0 | +0
127004
-4608 | +0
127004
-0 |
| Javascript | +131612
0
-0 | +0
131612
-0 | +119852
11760
-87344 | +4608
127004
-0 | — | +4279
127333
-0 | +4608
127004
-0 | +4279
127333
-0 | +0
131612
-0 | +10198
121414
-0 | +0
131612
-0 | +4608
127004
-0 |
| Obj-C | +127333
0
-0 | +0
127333
-4279 | +115830
11503
-87601 | +329
127004
-0 | +0
127333
-4279 | — | +329
127004
-0 | +0
127333
-0 | +0
127333
-4279 | +5919
121414
-0 | +0
127333
-4279 | +329
127004
-0 |
| Perl | +127004
0
-0 | +0
127004
-4608 | +115591
11413
-87691 | +0
127004
-0 | +0
127004
-4608 | +0
127004
-329 | — | +0
127004
-329 | +0
127004
-4608 | +5590
121414
-0 | +0
127004
-4608 | +0
127004
-0 |
| PHP | +127333
0
-0 | +0
127333
-4279 | +115830
11503
-87601 | +329
127004
-0 | +0
127333
-4279 | +0
127333
-0 | +329
127004
-0 | — | +0
127333
-4279 | +5919
121414
-0 | +0
127333
-4279 | +329
127004
-0 |
| Python | +131612
0
-0 | +0
131612
-0 | +119852
11760
-87344 | +4608
127004
-0 | +0
131612
-0 | +4279
127333
-0 | +4608
127004
-0 | +4279
127333
-0 | — | +10198
121414
-0 | +0
131612
-0 | +4608
127004
-0 |
| Ruby | +121414
0
-0 | +0
121414
-10198 | +110349
11065
-88039 | +0
121414
-5590 | +0
121414
-10198 | +0
121414
-5919 | +0
121414
-5590 | +0
121414
-5919 | +0
121414
-10198 | — | +0
121414
-10198 | +0
121414
-5590 |
| Rust | +131612
0
-0 | +0
131612
-0 | +119852
11760
-87344 | +4608
127004
-0 | +0
131612
-0 | +4279
127333
-0 | +4608
127004
-0 | +4279
127333
-0 | +0
131612
-0 | +10198
121414
-0 | — | +4608
127004
-0 |
| Scala | +127004
0
-0 | +0
127004
-4608 | +115591
11413
-87691 | +0
127004
-0 | +0
127004
-4608 | +0
127004
-329 | +0
127004
-0 | +0
127004
-329 | +0
127004
-4608 | +5590
121414
-0 | +0
127004
-4608 | — |
#### Character Classes - POSIX - Short - Letter (`[\p{L}]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | -------: | ------: | -------: | ------: | ---------: | ------: | ------: | ------: | ------: | ------: | ------: | ------: |
| C++ | — | +0
0
-136104 | +0
0
-1113975 | +0
0
-131241 | +0
0
-136104 | +0
0
-131756 | +0
0
-131241 | +0
0
-131756 | +0
0
-136104 | +0
0
-125643 | +0
0
-136104 | +0
0
-131241 |
| Go | +136104
0
-0 | — | +30
136074
-977901 | +4863
131241
-0 | +0
136104
-0 | +4348
131756
-0 | +4863
131241
-0 | +4348
131756
-0 | +0
136104
-0 | +10461
125643
-0 | +0
136104
-0 | +4863
131241
-0 |
| Haskell | +1113975
0
-0 | +977901
136074
-30 | — | +982764
131211
-30 | +977901
136074
-30 | +982249
131726
-30 | +982764
131211
-30 | +982249
131726
-30 | +977901
136074
-30 | +988362
125613
-30 | +977901
136074
-30 | +982764
131211
-30 |
| Java | +131241
0
-0 | +0
131241
-4863 | +30
131211
-982764 | — | +0
131241
-4863 | +0
131241
-515 | +0
131241
-0 | +0
131241
-515 | +0
131241
-4863 | +5598
125643
-0 | +0
131241
-4863 | +0
131241
-0 |
| Javascript | +136104
0
-0 | +0
136104
-0 | +30
136074
-977901 | +4863
131241
-0 | — | +4348
131756
-0 | +4863
131241
-0 | +4348
131756
-0 | +0
136104
-0 | +10461
125643
-0 | +0
136104
-0 | +4863
131241
-0 |
| Obj-C | +131756
0
-0 | +0
131756
-4348 | +30
131726
-982249 | +515
131241
-0 | +0
131756
-4348 | — | +515
131241
-0 | +0
131756
-0 | +0
131756
-4348 | +6113
125643
-0 | +0
131756
-4348 | +515
131241
-0 |
| Perl | +131241
0
-0 | +0
131241
-4863 | +30
131211
-982764 | +0
131241
-0 | +0
131241
-4863 | +0
131241
-515 | — | +0
131241
-515 | +0
131241
-4863 | +5598
125643
-0 | +0
131241
-4863 | +0
131241
-0 |
| PHP | +131756
0
-0 | +0
131756
-4348 | +30
131726
-982249 | +515
131241
-0 | +0
131756
-4348 | +0
131756
-0 | +515
131241
-0 | — | +0
131756
-4348 | +6113
125643
-0 | +0
131756
-4348 | +515
131241
-0 |
| Python | +136104
0
-0 | +0
136104
-0 | +30
136074
-977901 | +4863
131241
-0 | +0
136104
-0 | +4348
131756
-0 | +4863
131241
-0 | +4348
131756
-0 | — | +10461
125643
-0 | +0
136104
-0 | +4863
131241
-0 |
| Ruby | +125643
0
-0 | +0
125643
-10461 | +30
125613
-988362 | +0
125643
-5598 | +0
125643
-10461 | +0
125643
-6113 | +0
125643
-5598 | +0
125643
-6113 | +0
125643
-10461 | — | +0
125643
-10461 | +0
125643
-5598 |
| Rust | +136104
0
-0 | +0
136104
-0 | +30
136074
-977901 | +4863
131241
-0 | +0
136104
-0 | +4348
131756
-0 | +4863
131241
-0 | +4348
131756
-0 | +0
136104
-0 | +10461
125643
-0 | — | +4863
131241
-0 |
| Scala | +131241
0
-0 | +0
131241
-4863 | +30
131211
-982764 | +0
131241
-0 | +0
131241
-4863 | +0
131241
-515 | +0
131241
-0 | +0
131241
-515 | +0
131241
-4863 | +5598
125643
-0 | +0
131241
-4863 | — |
#### Character Classes - POSIX - Short - Nonspacing Mark (`[\p{Mn}]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ----: | ----: | ------: | ----: | ---------: | ----: | ----: | ----: | -----: | ----: | ----: | ----: |
| C++ | — | +0
0
-1985 | +0
0
-0 | +0
0
-1839 | +0
0
-1985 | +0
0
-1950 | +0
0
-1839 | +0
0
-1950 | +0
0
-1985 | +0
0
-1826 | +0
0
-1985 | +0
0
-1839 |
| Go | +1985
0
-0 | — | +1985
0
-0 | +147
1838
-1 | +0
1985
-0 | +35
1950
-0 | +147
1838
-1 | +35
1950
-0 | +0
1985
-0 | +160
1825
-1 | +0
1985
-0 | +147
1838
-1 |
| Haskell | +0
0
-0 | +0
0
-1985 | — | +0
0
-1839 | +0
0
-1985 | +0
0
-1950 | +0
0
-1839 | +0
0
-1950 | +0
0
-1985 | +0
0
-1826 | +0
0
-1985 | +0
0
-1839 |
| Java | +1839
0
-0 | +1
1838
-147 | +1839
0
-0 | — | +1
1838
-147 | +1
1838
-112 | +0
1839
-0 | +1
1838
-112 | +1
1838
-147 | +13
1826
-0 | +1
1838
-147 | +0
1839
-0 |
| Javascript | +1985
0
-0 | +0
1985
-0 | +1985
0
-0 | +147
1838
-1 | — | +35
1950
-0 | +147
1838
-1 | +35
1950
-0 | +0
1985
-0 | +160
1825
-1 | +0
1985
-0 | +147
1838
-1 |
| Obj-C | +1950
0
-0 | +0
1950
-35 | +1950
0
-0 | +112
1838
-1 | +0
1950
-35 | — | +112
1838
-1 | +0
1950
-0 | +0
1950
-35 | +125
1825
-1 | +0
1950
-35 | +112
1838
-1 |
| Perl | +1839
0
-0 | +1
1838
-147 | +1839
0
-0 | +0
1839
-0 | +1
1838
-147 | +1
1838
-112 | — | +1
1838
-112 | +1
1838
-147 | +13
1826
-0 | +1
1838
-147 | +0
1839
-0 |
| PHP | +1950
0
-0 | +0
1950
-35 | +1950
0
-0 | +112
1838
-1 | +0
1950
-35 | +0
1950
-0 | +112
1838
-1 | — | +0
1950
-35 | +125
1825
-1 | +0
1950
-35 | +112
1838
-1 |
| Python | +1985
0
-0 | +0
1985
-0 | +1985
0
-0 | +147
1838
-1 | +0
1985
-0 | +35
1950
-0 | +147
1838
-1 | +35
1950
-0 | — | +160
1825
-1 | +0
1985
-0 | +147
1838
-1 |
| Ruby | +1826
0
-0 | +1
1825
-160 | +1826
0
-0 | +0
1826
-13 | +1
1825
-160 | +1
1825
-125 | +0
1826
-13 | +1
1825
-125 | +1
1825
-160 | — | +1
1825
-160 | +0
1826
-13 |
| Rust | +1985
0
-0 | +0
1985
-0 | +1985
0
-0 | +147
1838
-1 | +0
1985
-0 | +35
1950
-0 | +147
1838
-1 | +35
1950
-0 | +0
1985
-0 | +160
1825
-1 | — | +147
1838
-1 |
| Scala | +1839
0
-0 | +1
1838
-147 | +1839
0
-0 | +0
1839
-0 | +1
1838
-147 | +1
1838
-112 | +0
1839
-0 | +1
1838
-112 | +1
1838
-147 | +13
1826
-0 | +1
1838
-147 | — |
#### Character Classes - POSIX - Short - Spacing Mark (`[\p{Mc}]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ---: | ---: | ------: | ---: | ---------: | ----: | ---: | ---: | -----: | ---: | ---: | ----: |
| C++ | — | +0
0
-452 | +0
0
-0 | +0
0
-443 | +0
0
-452 | +0
0
-445 | +0
0
-443 | +0
0
-445 | +0
0
-452 | +0
0
-429 | +0
0
-452 | +0
0
-443 |
| Go | +452
0
-0 | — | +452
0
-0 | +9
443
-0 | +0
452
-0 | +7
445
-0 | +9
443
-0 | +7
445
-0 | +0
452
-0 | +23
429
-0 | +0
452
-0 | +9
443
-0 |
| Haskell | +0
0
-0 | +0
0
-452 | — | +0
0
-443 | +0
0
-452 | +0
0
-445 | +0
0
-443 | +0
0
-445 | +0
0
-452 | +0
0
-429 | +0
0
-452 | +0
0
-443 |
| Java | +443
0
-0 | +0
443
-9 | +443
0
-0 | — | +0
443
-9 | +0
443
-2 | +0
443
-0 | +0
443
-2 | +0
443
-9 | +14
429
-0 | +0
443
-9 | +0
443
-0 |
| Javascript | +452
0
-0 | +0
452
-0 | +452
0
-0 | +9
443
-0 | — | +7
445
-0 | +9
443
-0 | +7
445
-0 | +0
452
-0 | +23
429
-0 | +0
452
-0 | +9
443
-0 |
| Obj-C | +445
0
-0 | +0
445
-7 | +445
0
-0 | +2
443
-0 | +0
445
-7 | — | +2
443
-0 | +0
445
-0 | +0
445
-7 | +16
429
-0 | +0
445
-7 | +2
443
-0 |
| Perl | +443
0
-0 | +0
443
-9 | +443
0
-0 | +0
443
-0 | +0
443
-9 | +0
443
-2 | — | +0
443
-2 | +0
443
-9 | +14
429
-0 | +0
443
-9 | +0
443
-0 |
| PHP | +445
0
-0 | +0
445
-7 | +445
0
-0 | +2
443
-0 | +0
445
-7 | +0
445
-0 | +2
443
-0 | — | +0
445
-7 | +16
429
-0 | +0
445
-7 | +2
443
-0 |
| Python | +452
0
-0 | +0
452
-0 | +452
0
-0 | +9
443
-0 | +0
452
-0 | +7
445
-0 | +9
443
-0 | +7
445
-0 | — | +23
429
-0 | +0
452
-0 | +9
443
-0 |
| Ruby | +429
0
-0 | +0
429
-23 | +429
0
-0 | +0
429
-14 | +0
429
-23 | +0
429
-16 | +0
429
-14 | +0
429
-16 | +0
429
-23 | — | +0
429
-23 | +0
429
-14 |
| Rust | +452
0
-0 | +0
452
-0 | +452
0
-0 | +9
443
-0 | +0
452
-0 | +7
445
-0 | +9
443
-0 | +7
445
-0 | +0
452
-0 | +23
429
-0 | — | +9
443
-0 |
| Scala | +443
0
-0 | +0
443
-9 | +443
0
-0 | +0
443
-0 | +0
443
-9 | +0
443
-2 | +0
443
-0 | +0
443
-2 | +0
443
-9 | +14
429
-0 | +0
443
-9 | — |
#### Character Classes - POSIX - Short - Enclosing Mark (`[\p{Me}]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | --: | --: | ------: | ---: | ---------: | ----: | ---: | --: | -----: | ---: | ---: | ----: |
| C++ | — | +0
0
-13 | +0
0
-0 | +0
0
-13 | +0
0
-13 | +0
0
-13 | +0
0
-13 | +0
0
-13 | +0
0
-13 | +0
0
-13 | +0
0
-13 | +0
0
-13 |
| Go | +13
0
-0 | — | +13
0
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 |
| Haskell | +0
0
-0 | +0
0
-13 | — | +0
0
-13 | +0
0
-13 | +0
0
-13 | +0
0
-13 | +0
0
-13 | +0
0
-13 | +0
0
-13 | +0
0
-13 | +0
0
-13 |
| Java | +13
0
-0 | +0
13
-0 | +13
0
-0 | — | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 |
| Javascript | +13
0
-0 | +0
13
-0 | +13
0
-0 | +0
13
-0 | — | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 |
| Obj-C | +13
0
-0 | +0
13
-0 | +13
0
-0 | +0
13
-0 | +0
13
-0 | — | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 |
| Perl | +13
0
-0 | +0
13
-0 | +13
0
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | — | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 |
| PHP | +13
0
-0 | +0
13
-0 | +13
0
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | — | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 |
| Python | +13
0
-0 | +0
13
-0 | +13
0
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | — | +0
13
-0 | +0
13
-0 | +0
13
-0 |
| Ruby | +13
0
-0 | +0
13
-0 | +13
0
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | — | +0
13
-0 | +0
13
-0 |
| Rust | +13
0
-0 | +0
13
-0 | +13
0
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | — | +0
13
-0 |
| Scala | +13
0
-0 | +0
13
-0 | +13
0
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | +0
13
-0 | — |
#### Character Classes - POSIX - Short - Mark (`[\p{M}]`)
| Language | C++ | Go | Haskell | Java | Javascript | Obj-C | Perl | PHP | Python | Ruby | Rust | Scala |
| :--------- | ----: | ----: | ------: | ----: | ---------: | ----: | ----: | ----: | -----: | ----: | ----: | ----: |
| C++ | — | +0
0
-2450 | +0
0
-0 | +0
0
-2295 | +0
0
-2450 | +0
0
-2408 | +0
0
-2295 | +0
0
-2408 | +0
0
-2450 | +0
0
-2268 | +0
0
-2450 | +0
0
-2295 |
| Go | +2450
0
-0 | — | +2450
0
-0 | +155
2295
-0 | +0
2450
-0 | +42
2408
-0 | +155
2295
-0 | +42
2408
-0 | +0
2450
-0 | +182
2268
-0 | +0
2450
-0 | +155
2295
-0 |
| Haskell | +0
0
-0 | +0
0
-2450 | — | +0
0
-2295 | +0
0
-2450 | +0
0
-2408 | +0
0
-2295 | +0
0
-2408 | +0
0
-2450 | +0
0
-2268 | +0
0
-2450 | +0
0
-2295 |
| Java | +2295
0
-0 | +0
2295
-155 | +2295
0
-0 | — | +0
2295
-155 | +0
2295
-113 | +0
2295
-0 | +0
2295
-113 | +0
2295
-155 | +27
2268
-0 | +0
2295
-155 | +0
2295
-0 |
| Javascript | +2450
0
-0 | +0
2450
-0 | +2450
0
-0 | +155
2295
-0 | — | +42
2408
-0 | +155
2295
-0 | +42
2408
-0 | +0
2450
-0 | +182
2268
-0 | +0
2450
-0 | +155
2295
-0 |
| Obj-C | +2408
0
-0 | +0
2408
-42 | +2408
0
-0 | +113
2295
-0 | +0
2408
-42 | — | +113
2295
-0 | +0
2408
-0 | +0
2408
-42 | +140
2268
-0 | +0
2408
-42 | +113
2295
-0 |
| Perl | +2295
0
-0 | +0
2295
-155 | +2295
0
-0 | +0
2295
-0 | +0
2295
-155 | +0
2295
-113 | — | +0
2295
-113 | +0
2295
-155 | +27
2268
-0 | +0
2295
-155 | +0
2295
-0 |
| PHP | +2408
0
-0 | +0
2408
-42 | +2408
0
-0 | +113
2295
-0 | +0
2408
-42 | +0
2408
-0 | +113
2295
-0 | — | +0
2408
-42 | +140
2268
-0 | +0
2408
-42 | +113
2295
-0 |
| Python | +2450
0
-0 | +0
2450
-0 | +2450
0
-0 | +155
2295
-0 | +0
2450
-0 | +42
2408
-0 | +155
2295
-0 | +42
2408
-0 | — | +182
2268
-0 | +0
2450
-0 | +155
2295
-0 |
| Ruby | +2268
0
-0 | +0
2268
-182 | +2268
0
-0 | +0
2268
-27 | +0
2268
-182 | +0
2268
-140 | +0
2268
-27 | +0
2268
-140 | +0
2268
-182 | — | +0
2268
-182 | +0
2268
-27 |
| Rust | +2450
0
-0 | +0
2450
-0 | +2450
0
-0 | +155
2295
-0 | +0
2450
-0 | +42
2408
-0 | +155
2295
-0 | +42
2408
-0 | +0
2450
-0 | +182
2268
-0 | — | +155
2295
-0 |
| Scala | +2295
0
-0 | +0
2295
-155 | +2295
0
-0