@@ -37,4 +37,59 @@ The eventual goal of this crate is to support all of the syntax in the [core Rus
3737| | ` \pN ` | One-letter name Unicode character class |
3838| | ` \p{Greek} ` | Unicode character class (general category or script) |
3939| | ` \PN ` | Negated one-letter name Unicode character class |
40- | | ` \P{Greek} ` | negated Unicode character class (general category or script) |
40+ | | ` \P{Greek} ` | negated Unicode character class (general category or script) |
41+
42+ ### Perl Character Classes
43+
44+ | Implemented? | Expression | Description |
45+ | :---------------: | :--------: | :---------- |
46+ | ` digit() ` | ` \d ` | digit (\p{Nd}) |
47+ | ` non_digit() ` | ` \D ` | not digit |
48+ | ` whitespace() ` | ` \s ` | whitespace (\p{White_Space}) |
49+ | ` non_whitespace() ` | ` \S ` | not whitespace |
50+ | ` word() ` | ` \w ` | word character (\p{Alphabetic} + \p{M} + \d + \p{Pc} + \p{Join_Control}) |
51+ | ` non_word() ` | ` \W ` | not word character |
52+
53+ ### ASCII Character Classes
54+
55+ | Implemented? | Expression | Description |
56+ | :---------------: | :------------: | :---------- |
57+ | | ` [[:alnum:]] ` | alphanumeric ([ 0-9A-Za-z] ) |
58+ | | ` [[:alpha:]] ` | alphabetic ([ A-Za-z] ) |
59+ | | ` [[:ascii:]] ` | ASCII ([ \x00-\x7F] ) |
60+ | | ` [[:blank:]] ` | blank ([ \t ] ) |
61+ | | ` [[:cntrl:]] ` | control ([ \x00-\x1F\x7F] ) |
62+ | ` digit() ` | ` [[:digit:]] ` | digits ([ 0-9] ) |
63+ | | ` [[:graph:]] ` | graphical ([ !-~ ] ) |
64+ | | ` [[:lower:]] ` | lower case ([ a-z] ) |
65+ | | ` [[:print:]] ` | printable ([ -~ ] ) |
66+ | | ` [[:punct:]] ` | punctuation ([ !-/:-@\[ -`{-~ ] ) |
67+ | | ` [[:space:]] ` | whitespace ([ \t\n\v\f\r ] ) |
68+ | | ` [[:upper:]] ` | upper case ([ A-Z] ) |
69+ | ` word() ` | ` [[:word:]] ` | word characters ([ 0-9A-Za-z_ ] ) |
70+ | | ` [[:xdigit:]] ` | hex digit ([ 0-9A-Fa-f] ) |
71+
72+ ## Repetitions
73+
74+ | Implemented? | Expression | Description |
75+ | :---------------: | :------------: | :---------- |
76+ x* zero or more of x (greedy)
77+ x+ one or more of x (greedy)
78+ x? zero or one of x (greedy)
79+ x* ? zero or more of x (ungreedy/lazy)
80+ x+? one or more of x (ungreedy/lazy)
81+ x?? zero or one of x (ungreedy/lazy)
82+ x{n,m} at least n x and at most m x (greedy)
83+ x{n,} at least n x (greedy)
84+ x{n} exactly n x
85+ x{n,m}? at least n x and at most m x (ungreedy/lazy)
86+ x{n,}? at least n x (ungreedy/lazy)
87+ x{n}? exactly n x
88+
89+ ## Composites
90+
91+ | Implemented? | Expression | Description |
92+ | :---------------: | :------------: | :------------------------------ |
93+ | ` + ` | ` xy ` | concatenation (x followed by y) |
94+ | ` or() ` | ` x\|y ` | alternation (x or y, prefer x) |
95+
0 commit comments