• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<!-- AUTOMATICALLY GENERATED by mksyntaxhtml -->
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
5<title>RE2 regular expression syntax reference</title>
6</head>
7<body>
8<h1>RE2 regular expression syntax reference</h1>
9
10<table border=0 cellpadding=2 cellspacing=2>
11<tr><td colspan=2>This page lists the regular expression syntax accepted by RE2.</td></tr>
12<tr><td colspan=2>It also lists syntax accepted by PCRE, PERL, and VIM.</td></tr>
13<tr><td colspan=2>Grayed out expressions are not supported by RE2.</td></tr>
14<tr><td></td></tr>
15<tr><td colspan=2><b>Single characters:</b></td></tr>
16<tr><td><code>.</code></td><td>any character, possibly including newline (s=true)</td></tr>
17<tr><td><code>[xyz]</code></td><td>character class</td></tr>
18<tr><td><code>[^xyz]</code></td><td>negated character class</td></tr>
19<tr><td><code>\d</code></td><td>Perl character class</td></tr>
20<tr><td><code>\D</code></td><td>negated Perl character class</td></tr>
21<tr><td><code>[[:alpha:]]</code></td><td>ASCII character class</td></tr>
22<tr><td><code>[[:^alpha:]]</code></td><td>negated ASCII character class</td></tr>
23<tr><td><code>\pN</code></td><td>Unicode character class (one-letter name)</td></tr>
24<tr><td><code>\p{Greek}</code></td><td>Unicode character class</td></tr>
25<tr><td><code>\PN</code></td><td>negated Unicode character class (one-letter name)</td></tr>
26<tr><td><code>\P{Greek}</code></td><td>negated Unicode character class</td></tr>
27<tr><td></td></tr>
28<tr><td colspan=2><b>Composites:</b></td></tr>
29<tr><td><code>xy</code></td><td><code>x</code> followed by <code>y</code></td></tr>
30<tr><td><code>x|y</code></td><td><code>x</code> or <code>y</code> (prefer <code>x</code>)</td></tr>
31<tr><td></td></tr>
32<tr><td colspan=2><b>Repetitions:</b></td></tr>
33<tr><td><code>x*</code></td><td>zero or more <code>x</code>, prefer more</td></tr>
34<tr><td><code>x+</code></td><td>one or more <code>x</code>, prefer more</td></tr>
35<tr><td><code>x?</code></td><td>zero or one <code>x</code>, prefer one</td></tr>
36<tr><td><code>x{n,m}</code></td><td><code>n</code> or <code>n</code>+1 or ... or <code>m</code> <code>x</code>, prefer more</td></tr>
37<tr><td><code>x{n,}</code></td><td><code>n</code> or more <code>x</code>, prefer more</td></tr>
38<tr><td><code>x{n}</code></td><td>exactly <code>n</code> <code>x</code></td></tr>
39<tr><td><code>x*?</code></td><td>zero or more <code>x</code>, prefer fewer</td></tr>
40<tr><td><code>x+?</code></td><td>one or more <code>x</code>, prefer fewer</td></tr>
41<tr><td><code>x??</code></td><td>zero or one <code>x</code>, prefer zero</td></tr>
42<tr><td><code>x{n,m}?</code></td><td><code>n</code> or <code>n</code>+1 or ... or <code>m</code> <code>x</code>, prefer fewer</td></tr>
43<tr><td><code>x{n,}?</code></td><td><code>n</code> or more <code>x</code>, prefer fewer</td></tr>
44<tr><td><code>x{n}?</code></td><td>exactly <code>n</code> <code>x</code></td></tr>
45<tr><td><code><font color=#808080>x{}</font></code></td><td>(≡ <code>x*</code>)  <font size=-2>VIM</font></td></tr>
46<tr><td><code><font color=#808080>x{-}</font></code></td><td>(≡ <code>x*?</code>)  <font size=-2>VIM</font></td></tr>
47<tr><td><code><font color=#808080>x{-n}</font></code></td><td>(≡ <code>x{n}?</code>)  <font size=-2>VIM</font></td></tr>
48<tr><td><code><font color=#808080>x=</font></code></td><td>(≡ <code>x?</code>)  <font size=-2>VIM</font></td></tr>
49<tr><td></td></tr>
50<tr><td colspan=2>Implementation restriction: The counting forms <code>x{n,m}</code>, <code>x{n,}</code>, and <code>x{n}</code></td></tr>
51<tr><td colspan=2>reject forms that create a minimum or maximum repetition count above 1000.</td></tr>
52<tr><td colspan=2>Unlimited repetitions are not subject to this restriction.</td></tr>
53<tr><td></td></tr>
54<tr><td colspan=2><b>Possessive repetitions:</b></td></tr>
55<tr><td><code><font color=#808080>x*+</font></code></td><td>zero or more <code>x</code>, possessive </td></tr>
56<tr><td><code><font color=#808080>x++</font></code></td><td>one or more <code>x</code>, possessive </td></tr>
57<tr><td><code><font color=#808080>x?+</font></code></td><td>zero or one <code>x</code>, possessive </td></tr>
58<tr><td><code><font color=#808080>x{n,m}+</font></code></td><td><code>n</code> or ... or <code>m</code> <code>x</code>, possessive </td></tr>
59<tr><td><code><font color=#808080>x{n,}+</font></code></td><td><code>n</code> or more <code>x</code>, possessive </td></tr>
60<tr><td><code><font color=#808080>x{n}+</font></code></td><td>exactly <code>n</code> <code>x</code>, possessive </td></tr>
61<tr><td></td></tr>
62<tr><td colspan=2><b>Grouping:</b></td></tr>
63<tr><td><code>(re)</code></td><td>numbered capturing group (submatch)</td></tr>
64<tr><td><code>(?P&lt;name&gt;re)</code></td><td>named &amp; numbered capturing group (submatch)</td></tr>
65<tr><td><code><font color=#808080>(?&lt;name&gt;re)</font></code></td><td>named &amp; numbered capturing group (submatch) </td></tr>
66<tr><td><code><font color=#808080>(?'name're)</font></code></td><td>named &amp; numbered capturing group (submatch) </td></tr>
67<tr><td><code>(?:re)</code></td><td>non-capturing group</td></tr>
68<tr><td><code>(?flags)</code></td><td>set flags within current group; non-capturing</td></tr>
69<tr><td><code>(?flags:re)</code></td><td>set flags during re; non-capturing</td></tr>
70<tr><td><code><font color=#808080>(?#text)</font></code></td><td>comment </td></tr>
71<tr><td><code><font color=#808080>(?|x|y|z)</font></code></td><td>branch numbering reset </td></tr>
72<tr><td><code><font color=#808080>(?&gt;re)</font></code></td><td>possessive match of <code>re</code> </td></tr>
73<tr><td><code><font color=#808080>re@&gt;</font></code></td><td>possessive match of <code>re</code>  <font size=-2>VIM</font></td></tr>
74<tr><td><code><font color=#808080>%(re)</font></code></td><td>non-capturing group  <font size=-2>VIM</font></td></tr>
75<tr><td></td></tr>
76<tr><td colspan=2><b>Flags:</b></td></tr>
77<tr><td><code>i</code></td><td>case-insensitive (default false)</td></tr>
78<tr><td><code>m</code></td><td>multi-line mode: <code>^</code> and <code>$</code> match begin/end line in addition to begin/end text (default false)</td></tr>
79<tr><td><code>s</code></td><td>let <code>.</code> match <code>\n</code> (default false)</td></tr>
80<tr><td><code>U</code></td><td>ungreedy: swap meaning of <code>x*</code> and <code>x*?</code>, <code>x+</code> and <code>x+?</code>, etc (default false)</td></tr>
81<tr><td colspan=2>Flag syntax is <code>xyz</code> (set) or <code>-xyz</code> (clear) or <code>xy-z</code> (set <code>xy</code>, clear <code>z</code>).</td></tr>
82<tr><td></td></tr>
83<tr><td colspan=2><b>Empty strings:</b></td></tr>
84<tr><td><code>^</code></td><td>at beginning of text or line (<code>m</code>=true)</td></tr>
85<tr><td><code>$</code></td><td>at end of text (like <code>\z</code> not <code>\Z</code>) or line (<code>m</code>=true)</td></tr>
86<tr><td><code>\A</code></td><td>at beginning of text</td></tr>
87<tr><td><code>\b</code></td><td>at ASCII word boundary (<code>\w</code> on one side and <code>\W</code>, <code>\A</code>, or <code>\z</code> on the other)</td></tr>
88<tr><td><code>\B</code></td><td>not at ASCII word boundary</td></tr>
89<tr><td><code><font color=#808080>\G</font></code></td><td>at beginning of subtext being searched  <font size=-2>PCRE</font></td></tr>
90<tr><td><code><font color=#808080>\G</font></code></td><td>at end of last match  <font size=-2>PERL</font></td></tr>
91<tr><td><code><font color=#808080>\Z</font></code></td><td>at end of text, or before newline at end of text </td></tr>
92<tr><td><code>\z</code></td><td>at end of text</td></tr>
93<tr><td><code><font color=#808080>(?=re)</font></code></td><td>before text matching <code>re</code> </td></tr>
94<tr><td><code><font color=#808080>(?!re)</font></code></td><td>before text not matching <code>re</code> </td></tr>
95<tr><td><code><font color=#808080>(?&lt;=re)</font></code></td><td>after text matching <code>re</code> </td></tr>
96<tr><td><code><font color=#808080>(?&lt;!re)</font></code></td><td>after text not matching <code>re</code> </td></tr>
97<tr><td><code><font color=#808080>re&amp;</font></code></td><td>before text matching <code>re</code>  <font size=-2>VIM</font></td></tr>
98<tr><td><code><font color=#808080>re@=</font></code></td><td>before text matching <code>re</code>  <font size=-2>VIM</font></td></tr>
99<tr><td><code><font color=#808080>re@!</font></code></td><td>before text not matching <code>re</code>  <font size=-2>VIM</font></td></tr>
100<tr><td><code><font color=#808080>re@&lt;=</font></code></td><td>after text matching <code>re</code>  <font size=-2>VIM</font></td></tr>
101<tr><td><code><font color=#808080>re@&lt;!</font></code></td><td>after text not matching <code>re</code>  <font size=-2>VIM</font></td></tr>
102<tr><td><code><font color=#808080>\zs</font></code></td><td>sets start of match (= \K)  <font size=-2>VIM</font></td></tr>
103<tr><td><code><font color=#808080>\ze</font></code></td><td>sets end of match  <font size=-2>VIM</font></td></tr>
104<tr><td><code><font color=#808080>\%^</font></code></td><td>beginning of file  <font size=-2>VIM</font></td></tr>
105<tr><td><code><font color=#808080>\%$</font></code></td><td>end of file  <font size=-2>VIM</font></td></tr>
106<tr><td><code><font color=#808080>\%V</font></code></td><td>on screen  <font size=-2>VIM</font></td></tr>
107<tr><td><code><font color=#808080>\%#</font></code></td><td>cursor position  <font size=-2>VIM</font></td></tr>
108<tr><td><code><font color=#808080>\%'m</font></code></td><td>mark <code>m</code> position  <font size=-2>VIM</font></td></tr>
109<tr><td><code><font color=#808080>\%23l</font></code></td><td>in line 23  <font size=-2>VIM</font></td></tr>
110<tr><td><code><font color=#808080>\%23c</font></code></td><td>in column 23  <font size=-2>VIM</font></td></tr>
111<tr><td><code><font color=#808080>\%23v</font></code></td><td>in virtual column 23  <font size=-2>VIM</font></td></tr>
112<tr><td></td></tr>
113<tr><td colspan=2><b>Escape sequences:</b></td></tr>
114<tr><td><code>\a</code></td><td>bell (≡ <code>\007</code>)</td></tr>
115<tr><td><code>\f</code></td><td>form feed (≡ <code>\014</code>)</td></tr>
116<tr><td><code>\t</code></td><td>horizontal tab (≡ <code>\011</code>)</td></tr>
117<tr><td><code>\n</code></td><td>newline (≡ <code>\012</code>)</td></tr>
118<tr><td><code>\r</code></td><td>carriage return (≡ <code>\015</code>)</td></tr>
119<tr><td><code>\v</code></td><td>vertical tab character (≡ <code>\013</code>)</td></tr>
120<tr><td><code>\*</code></td><td>literal <code>*</code>, for any punctuation character <code>*</code></td></tr>
121<tr><td><code>\123</code></td><td>octal character code (up to three digits)</td></tr>
122<tr><td><code>\x7F</code></td><td>hex character code (exactly two digits)</td></tr>
123<tr><td><code>\x{10FFFF}</code></td><td>hex character code</td></tr>
124<tr><td><code>\C</code></td><td>match a single byte even in UTF-8 mode</td></tr>
125<tr><td><code>\Q...\E</code></td><td>literal text <code>...</code> even if <code>...</code> has punctuation</td></tr>
126<tr><td></td></tr>
127<tr><td><code><font color=#808080>\1</font></code></td><td>backreference </td></tr>
128<tr><td><code><font color=#808080>\b</font></code></td><td>backspace  (use <code>\010</code>)</td></tr>
129<tr><td><code><font color=#808080>\cK</font></code></td><td>control char ^K  (use <code>\001</code> etc)</td></tr>
130<tr><td><code><font color=#808080>\e</font></code></td><td>escape  (use <code>\033</code>)</td></tr>
131<tr><td><code><font color=#808080>\g1</font></code></td><td>backreference </td></tr>
132<tr><td><code><font color=#808080>\g{1}</font></code></td><td>backreference </td></tr>
133<tr><td><code><font color=#808080>\g{+1}</font></code></td><td>backreference </td></tr>
134<tr><td><code><font color=#808080>\g{-1}</font></code></td><td>backreference </td></tr>
135<tr><td><code><font color=#808080>\g{name}</font></code></td><td>named backreference </td></tr>
136<tr><td><code><font color=#808080>\g&lt;name&gt;</font></code></td><td>subroutine call </td></tr>
137<tr><td><code><font color=#808080>\g'name'</font></code></td><td>subroutine call </td></tr>
138<tr><td><code><font color=#808080>\k&lt;name&gt;</font></code></td><td>named backreference </td></tr>
139<tr><td><code><font color=#808080>\k'name'</font></code></td><td>named backreference </td></tr>
140<tr><td><code><font color=#808080>\lX</font></code></td><td>lowercase <code>X</code> </td></tr>
141<tr><td><code><font color=#808080>\ux</font></code></td><td>uppercase <code>x</code> </td></tr>
142<tr><td><code><font color=#808080>\L...\E</font></code></td><td>lowercase text <code>...</code> </td></tr>
143<tr><td><code><font color=#808080>\K</font></code></td><td>reset beginning of <code>$0</code> </td></tr>
144<tr><td><code><font color=#808080>\N{name}</font></code></td><td>named Unicode character </td></tr>
145<tr><td><code><font color=#808080>\R</font></code></td><td>line break </td></tr>
146<tr><td><code><font color=#808080>\U...\E</font></code></td><td>upper case text <code>...</code> </td></tr>
147<tr><td><code><font color=#808080>\X</font></code></td><td>extended Unicode sequence </td></tr>
148<tr><td></td></tr>
149<tr><td><code><font color=#808080>\%d123</font></code></td><td>decimal character 123  <font size=-2>VIM</font></td></tr>
150<tr><td><code><font color=#808080>\%xFF</font></code></td><td>hex character FF  <font size=-2>VIM</font></td></tr>
151<tr><td><code><font color=#808080>\%o123</font></code></td><td>octal character 123  <font size=-2>VIM</font></td></tr>
152<tr><td><code><font color=#808080>\%u1234</font></code></td><td>Unicode character 0x1234  <font size=-2>VIM</font></td></tr>
153<tr><td><code><font color=#808080>\%U12345678</font></code></td><td>Unicode character 0x12345678  <font size=-2>VIM</font></td></tr>
154<tr><td></td></tr>
155<tr><td colspan=2><b>Character class elements:</b></td></tr>
156<tr><td><code>x</code></td><td>single character</td></tr>
157<tr><td><code>A-Z</code></td><td>character range (inclusive)</td></tr>
158<tr><td><code>\d</code></td><td>Perl character class</td></tr>
159<tr><td><code>[:foo:]</code></td><td>ASCII character class <code>foo</code></td></tr>
160<tr><td><code>\p{Foo}</code></td><td>Unicode character class <code>Foo</code></td></tr>
161<tr><td><code>\pF</code></td><td>Unicode character class <code>F</code> (one-letter name)</td></tr>
162<tr><td></td></tr>
163<tr><td colspan=2><b>Named character classes as character class elements:</b></td></tr>
164<tr><td><code>[\d]</code></td><td>digits (≡ <code>\d</code>)</td></tr>
165<tr><td><code>[^\d]</code></td><td>not digits (≡ <code>\D</code>)</td></tr>
166<tr><td><code>[\D]</code></td><td>not digits (≡ <code>\D</code>)</td></tr>
167<tr><td><code>[^\D]</code></td><td>not not digits (≡ <code>\d</code>)</td></tr>
168<tr><td><code>[[:name:]]</code></td><td>named ASCII class inside character class (≡ <code>[:name:]</code>)</td></tr>
169<tr><td><code>[^[:name:]]</code></td><td>named ASCII class inside negated character class (≡ <code>[:^name:]</code>)</td></tr>
170<tr><td><code>[\p{Name}]</code></td><td>named Unicode property inside character class (≡ <code>\p{Name}</code>)</td></tr>
171<tr><td><code>[^\p{Name}]</code></td><td>named Unicode property inside negated character class (≡ <code>\P{Name}</code>)</td></tr>
172<tr><td></td></tr>
173<tr><td colspan=2><b>Perl character classes (all ASCII-only):</b></td></tr>
174<tr><td><code>\d</code></td><td>digits (≡ <code>[0-9]</code>)</td></tr>
175<tr><td><code>\D</code></td><td>not digits (≡ <code>[^0-9]</code>)</td></tr>
176<tr><td><code>\s</code></td><td>whitespace (≡ <code>[\t\n\f\r ]</code>)</td></tr>
177<tr><td><code>\S</code></td><td>not whitespace (≡ <code>[^\t\n\f\r ]</code>)</td></tr>
178<tr><td><code>\w</code></td><td>word characters (≡ <code>[0-9A-Za-z_]</code>)</td></tr>
179<tr><td><code>\W</code></td><td>not word characters (≡ <code>[^0-9A-Za-z_]</code>)</td></tr>
180<tr><td></td></tr>
181<tr><td><code><font color=#808080>\h</font></code></td><td>horizontal space </td></tr>
182<tr><td><code><font color=#808080>\H</font></code></td><td>not horizontal space </td></tr>
183<tr><td><code><font color=#808080>\v</font></code></td><td>vertical space </td></tr>
184<tr><td><code><font color=#808080>\V</font></code></td><td>not vertical space </td></tr>
185<tr><td></td></tr>
186<tr><td colspan=2><b>ASCII character classes:</b></td></tr>
187<tr><td><code>[[:alnum:]]</code></td><td>alphanumeric (≡ <code>[0-9A-Za-z]</code>)</td></tr>
188<tr><td><code>[[:alpha:]]</code></td><td>alphabetic (≡ <code>[A-Za-z]</code>)</td></tr>
189<tr><td><code>[[:ascii:]]</code></td><td>ASCII (≡ <code>[\x00-\x7F]</code>)</td></tr>
190<tr><td><code>[[:blank:]]</code></td><td>blank (≡ <code>[\t ]</code>)</td></tr>
191<tr><td><code>[[:cntrl:]]</code></td><td>control (≡ <code>[\x00-\x1F\x7F]</code>)</td></tr>
192<tr><td><code>[[:digit:]]</code></td><td>digits (≡ <code>[0-9]</code>)</td></tr>
193<tr><td><code>[[:graph:]]</code></td><td>graphical (≡ <code>[!-~] == [A-Za-z0-9!"#$%&amp;'()*+,\-./:;&lt;=&gt;?@[\\\]^_`{|}~]</code>)</td></tr>
194<tr><td><code>[[:lower:]]</code></td><td>lower case (≡ <code>[a-z]</code>)</td></tr>
195<tr><td><code>[[:print:]]</code></td><td>printable (≡ <code>[ -~] == [ [:graph:]]</code>)</td></tr>
196<tr><td><code>[[:punct:]]</code></td><td>punctuation (≡ <code>[!-/:-@[-`{-~]</code>)</td></tr>
197<tr><td><code>[[:space:]]</code></td><td>whitespace (≡ <code>[\t\n\v\f\r ]</code>)</td></tr>
198<tr><td><code>[[:upper:]]</code></td><td>upper case (≡ <code>[A-Z]</code>)</td></tr>
199<tr><td><code>[[:word:]]</code></td><td>word characters (≡ <code>[0-9A-Za-z_]</code>)</td></tr>
200<tr><td><code>[[:xdigit:]]</code></td><td>hex digit (≡ <code>[0-9A-Fa-f]</code>)</td></tr>
201<tr><td></td></tr>
202<tr><td colspan=2><b>Unicode character class names--general category:</b></td></tr>
203<tr><td><code>C</code></td><td>other</td></tr>
204<tr><td><code>Cc</code></td><td>control</td></tr>
205<tr><td><code>Cf</code></td><td>format</td></tr>
206<tr><td><code><font color=#808080>Cn</font></code></td><td>unassigned code points </td></tr>
207<tr><td><code>Co</code></td><td>private use</td></tr>
208<tr><td><code>Cs</code></td><td>surrogate</td></tr>
209<tr><td><code>L</code></td><td>letter</td></tr>
210<tr><td><code><font color=#808080>LC</font></code></td><td>cased letter </td></tr>
211<tr><td><code><font color=#808080>L&amp;</font></code></td><td>cased letter </td></tr>
212<tr><td><code>Ll</code></td><td>lowercase letter</td></tr>
213<tr><td><code>Lm</code></td><td>modifier letter</td></tr>
214<tr><td><code>Lo</code></td><td>other letter</td></tr>
215<tr><td><code>Lt</code></td><td>titlecase letter</td></tr>
216<tr><td><code>Lu</code></td><td>uppercase letter</td></tr>
217<tr><td><code>M</code></td><td>mark</td></tr>
218<tr><td><code>Mc</code></td><td>spacing mark</td></tr>
219<tr><td><code>Me</code></td><td>enclosing mark</td></tr>
220<tr><td><code>Mn</code></td><td>non-spacing mark</td></tr>
221<tr><td><code>N</code></td><td>number</td></tr>
222<tr><td><code>Nd</code></td><td>decimal number</td></tr>
223<tr><td><code>Nl</code></td><td>letter number</td></tr>
224<tr><td><code>No</code></td><td>other number</td></tr>
225<tr><td><code>P</code></td><td>punctuation</td></tr>
226<tr><td><code>Pc</code></td><td>connector punctuation</td></tr>
227<tr><td><code>Pd</code></td><td>dash punctuation</td></tr>
228<tr><td><code>Pe</code></td><td>close punctuation</td></tr>
229<tr><td><code>Pf</code></td><td>final punctuation</td></tr>
230<tr><td><code>Pi</code></td><td>initial punctuation</td></tr>
231<tr><td><code>Po</code></td><td>other punctuation</td></tr>
232<tr><td><code>Ps</code></td><td>open punctuation</td></tr>
233<tr><td><code>S</code></td><td>symbol</td></tr>
234<tr><td><code>Sc</code></td><td>currency symbol</td></tr>
235<tr><td><code>Sk</code></td><td>modifier symbol</td></tr>
236<tr><td><code>Sm</code></td><td>math symbol</td></tr>
237<tr><td><code>So</code></td><td>other symbol</td></tr>
238<tr><td><code>Z</code></td><td>separator</td></tr>
239<tr><td><code>Zl</code></td><td>line separator</td></tr>
240<tr><td><code>Zp</code></td><td>paragraph separator</td></tr>
241<tr><td><code>Zs</code></td><td>space separator</td></tr>
242<tr><td></td></tr>
243<tr><td colspan=2><b>Unicode character class names--scripts:</b></td></tr>
244<tr><td colspan=2>Adlam</td></tr>
245<tr><td colspan=2>Ahom</td></tr>
246<tr><td colspan=2>Anatolian_Hieroglyphs</td></tr>
247<tr><td colspan=2>Arabic</td></tr>
248<tr><td colspan=2>Armenian</td></tr>
249<tr><td colspan=2>Avestan</td></tr>
250<tr><td colspan=2>Balinese</td></tr>
251<tr><td colspan=2>Bamum</td></tr>
252<tr><td colspan=2>Bassa_Vah</td></tr>
253<tr><td colspan=2>Batak</td></tr>
254<tr><td colspan=2>Bengali</td></tr>
255<tr><td colspan=2>Bhaiksuki</td></tr>
256<tr><td colspan=2>Bopomofo</td></tr>
257<tr><td colspan=2>Brahmi</td></tr>
258<tr><td colspan=2>Braille</td></tr>
259<tr><td colspan=2>Buginese</td></tr>
260<tr><td colspan=2>Buhid</td></tr>
261<tr><td colspan=2>Canadian_Aboriginal</td></tr>
262<tr><td colspan=2>Carian</td></tr>
263<tr><td colspan=2>Caucasian_Albanian</td></tr>
264<tr><td colspan=2>Chakma</td></tr>
265<tr><td colspan=2>Cham</td></tr>
266<tr><td colspan=2>Cherokee</td></tr>
267<tr><td colspan=2>Chorasmian</td></tr>
268<tr><td colspan=2>Common</td></tr>
269<tr><td colspan=2>Coptic</td></tr>
270<tr><td colspan=2>Cuneiform</td></tr>
271<tr><td colspan=2>Cypriot</td></tr>
272<tr><td colspan=2>Cyrillic</td></tr>
273<tr><td colspan=2>Deseret</td></tr>
274<tr><td colspan=2>Devanagari</td></tr>
275<tr><td colspan=2>Dives_Akuru</td></tr>
276<tr><td colspan=2>Dogra</td></tr>
277<tr><td colspan=2>Duployan</td></tr>
278<tr><td colspan=2>Egyptian_Hieroglyphs</td></tr>
279<tr><td colspan=2>Elbasan</td></tr>
280<tr><td colspan=2>Elymaic</td></tr>
281<tr><td colspan=2>Ethiopic</td></tr>
282<tr><td colspan=2>Georgian</td></tr>
283<tr><td colspan=2>Glagolitic</td></tr>
284<tr><td colspan=2>Gothic</td></tr>
285<tr><td colspan=2>Grantha</td></tr>
286<tr><td colspan=2>Greek</td></tr>
287<tr><td colspan=2>Gujarati</td></tr>
288<tr><td colspan=2>Gunjala_Gondi</td></tr>
289<tr><td colspan=2>Gurmukhi</td></tr>
290<tr><td colspan=2>Han</td></tr>
291<tr><td colspan=2>Hangul</td></tr>
292<tr><td colspan=2>Hanifi_Rohingya</td></tr>
293<tr><td colspan=2>Hanunoo</td></tr>
294<tr><td colspan=2>Hatran</td></tr>
295<tr><td colspan=2>Hebrew</td></tr>
296<tr><td colspan=2>Hiragana</td></tr>
297<tr><td colspan=2>Imperial_Aramaic</td></tr>
298<tr><td colspan=2>Inherited</td></tr>
299<tr><td colspan=2>Inscriptional_Pahlavi</td></tr>
300<tr><td colspan=2>Inscriptional_Parthian</td></tr>
301<tr><td colspan=2>Javanese</td></tr>
302<tr><td colspan=2>Kaithi</td></tr>
303<tr><td colspan=2>Kannada</td></tr>
304<tr><td colspan=2>Katakana</td></tr>
305<tr><td colspan=2>Kayah_Li</td></tr>
306<tr><td colspan=2>Kharoshthi</td></tr>
307<tr><td colspan=2>Khitan_Small_Script</td></tr>
308<tr><td colspan=2>Khmer</td></tr>
309<tr><td colspan=2>Khojki</td></tr>
310<tr><td colspan=2>Khudawadi</td></tr>
311<tr><td colspan=2>Lao</td></tr>
312<tr><td colspan=2>Latin</td></tr>
313<tr><td colspan=2>Lepcha</td></tr>
314<tr><td colspan=2>Limbu</td></tr>
315<tr><td colspan=2>Linear_A</td></tr>
316<tr><td colspan=2>Linear_B</td></tr>
317<tr><td colspan=2>Lisu</td></tr>
318<tr><td colspan=2>Lycian</td></tr>
319<tr><td colspan=2>Lydian</td></tr>
320<tr><td colspan=2>Mahajani</td></tr>
321<tr><td colspan=2>Makasar</td></tr>
322<tr><td colspan=2>Malayalam</td></tr>
323<tr><td colspan=2>Mandaic</td></tr>
324<tr><td colspan=2>Manichaean</td></tr>
325<tr><td colspan=2>Marchen</td></tr>
326<tr><td colspan=2>Masaram_Gondi</td></tr>
327<tr><td colspan=2>Medefaidrin</td></tr>
328<tr><td colspan=2>Meetei_Mayek</td></tr>
329<tr><td colspan=2>Mende_Kikakui</td></tr>
330<tr><td colspan=2>Meroitic_Cursive</td></tr>
331<tr><td colspan=2>Meroitic_Hieroglyphs</td></tr>
332<tr><td colspan=2>Miao</td></tr>
333<tr><td colspan=2>Modi</td></tr>
334<tr><td colspan=2>Mongolian</td></tr>
335<tr><td colspan=2>Mro</td></tr>
336<tr><td colspan=2>Multani</td></tr>
337<tr><td colspan=2>Myanmar</td></tr>
338<tr><td colspan=2>Nabataean</td></tr>
339<tr><td colspan=2>Nandinagari</td></tr>
340<tr><td colspan=2>New_Tai_Lue</td></tr>
341<tr><td colspan=2>Newa</td></tr>
342<tr><td colspan=2>Nko</td></tr>
343<tr><td colspan=2>Nushu</td></tr>
344<tr><td colspan=2>Nyiakeng_Puachue_Hmong</td></tr>
345<tr><td colspan=2>Ogham</td></tr>
346<tr><td colspan=2>Ol_Chiki</td></tr>
347<tr><td colspan=2>Old_Hungarian</td></tr>
348<tr><td colspan=2>Old_Italic</td></tr>
349<tr><td colspan=2>Old_North_Arabian</td></tr>
350<tr><td colspan=2>Old_Permic</td></tr>
351<tr><td colspan=2>Old_Persian</td></tr>
352<tr><td colspan=2>Old_Sogdian</td></tr>
353<tr><td colspan=2>Old_South_Arabian</td></tr>
354<tr><td colspan=2>Old_Turkic</td></tr>
355<tr><td colspan=2>Oriya</td></tr>
356<tr><td colspan=2>Osage</td></tr>
357<tr><td colspan=2>Osmanya</td></tr>
358<tr><td colspan=2>Pahawh_Hmong</td></tr>
359<tr><td colspan=2>Palmyrene</td></tr>
360<tr><td colspan=2>Pau_Cin_Hau</td></tr>
361<tr><td colspan=2>Phags_Pa</td></tr>
362<tr><td colspan=2>Phoenician</td></tr>
363<tr><td colspan=2>Psalter_Pahlavi</td></tr>
364<tr><td colspan=2>Rejang</td></tr>
365<tr><td colspan=2>Runic</td></tr>
366<tr><td colspan=2>Samaritan</td></tr>
367<tr><td colspan=2>Saurashtra</td></tr>
368<tr><td colspan=2>Sharada</td></tr>
369<tr><td colspan=2>Shavian</td></tr>
370<tr><td colspan=2>Siddham</td></tr>
371<tr><td colspan=2>SignWriting</td></tr>
372<tr><td colspan=2>Sinhala</td></tr>
373<tr><td colspan=2>Sogdian</td></tr>
374<tr><td colspan=2>Sora_Sompeng</td></tr>
375<tr><td colspan=2>Soyombo</td></tr>
376<tr><td colspan=2>Sundanese</td></tr>
377<tr><td colspan=2>Syloti_Nagri</td></tr>
378<tr><td colspan=2>Syriac</td></tr>
379<tr><td colspan=2>Tagalog</td></tr>
380<tr><td colspan=2>Tagbanwa</td></tr>
381<tr><td colspan=2>Tai_Le</td></tr>
382<tr><td colspan=2>Tai_Tham</td></tr>
383<tr><td colspan=2>Tai_Viet</td></tr>
384<tr><td colspan=2>Takri</td></tr>
385<tr><td colspan=2>Tamil</td></tr>
386<tr><td colspan=2>Tangut</td></tr>
387<tr><td colspan=2>Telugu</td></tr>
388<tr><td colspan=2>Thaana</td></tr>
389<tr><td colspan=2>Thai</td></tr>
390<tr><td colspan=2>Tibetan</td></tr>
391<tr><td colspan=2>Tifinagh</td></tr>
392<tr><td colspan=2>Tirhuta</td></tr>
393<tr><td colspan=2>Ugaritic</td></tr>
394<tr><td colspan=2>Vai</td></tr>
395<tr><td colspan=2>Wancho</td></tr>
396<tr><td colspan=2>Warang_Citi</td></tr>
397<tr><td colspan=2>Yezidi</td></tr>
398<tr><td colspan=2>Yi</td></tr>
399<tr><td colspan=2>Zanabazar_Square</td></tr>
400<tr><td></td></tr>
401<tr><td colspan=2><b>Vim character classes:</b></td></tr>
402<tr><td><code><font color=#808080>\i</font></code></td><td>identifier character  <font size=-2>VIM</font></td></tr>
403<tr><td><code><font color=#808080>\I</font></code></td><td><code>\i</code> except digits  <font size=-2>VIM</font></td></tr>
404<tr><td><code><font color=#808080>\k</font></code></td><td>keyword character  <font size=-2>VIM</font></td></tr>
405<tr><td><code><font color=#808080>\K</font></code></td><td><code>\k</code> except digits  <font size=-2>VIM</font></td></tr>
406<tr><td><code><font color=#808080>\f</font></code></td><td>file name character  <font size=-2>VIM</font></td></tr>
407<tr><td><code><font color=#808080>\F</font></code></td><td><code>\f</code> except digits  <font size=-2>VIM</font></td></tr>
408<tr><td><code><font color=#808080>\p</font></code></td><td>printable character  <font size=-2>VIM</font></td></tr>
409<tr><td><code><font color=#808080>\P</font></code></td><td><code>\p</code> except digits  <font size=-2>VIM</font></td></tr>
410<tr><td><code><font color=#808080>\s</font></code></td><td>whitespace character (≡ <code>[ \t]</code>)  <font size=-2>VIM</font></td></tr>
411<tr><td><code><font color=#808080>\S</font></code></td><td>non-white space character (≡ <code>[^ \t]</code>)  <font size=-2>VIM</font></td></tr>
412<tr><td><code>\d</code></td><td>digits (≡ <code>[0-9]</code>) <font size=-2>VIM</font></td></tr>
413<tr><td><code>\D</code></td><td>not <code>\d</code> <font size=-2>VIM</font></td></tr>
414<tr><td><code><font color=#808080>\x</font></code></td><td>hex digits (≡ <code>[0-9A-Fa-f]</code>)  <font size=-2>VIM</font></td></tr>
415<tr><td><code><font color=#808080>\X</font></code></td><td>not <code>\x</code>  <font size=-2>VIM</font></td></tr>
416<tr><td><code><font color=#808080>\o</font></code></td><td>octal digits (≡ <code>[0-7]</code>)  <font size=-2>VIM</font></td></tr>
417<tr><td><code><font color=#808080>\O</font></code></td><td>not <code>\o</code>  <font size=-2>VIM</font></td></tr>
418<tr><td><code>\w</code></td><td>word character <font size=-2>VIM</font></td></tr>
419<tr><td><code>\W</code></td><td>not <code>\w</code> <font size=-2>VIM</font></td></tr>
420<tr><td><code><font color=#808080>\h</font></code></td><td>head of word character  <font size=-2>VIM</font></td></tr>
421<tr><td><code><font color=#808080>\H</font></code></td><td>not <code>\h</code>  <font size=-2>VIM</font></td></tr>
422<tr><td><code><font color=#808080>\a</font></code></td><td>alphabetic  <font size=-2>VIM</font></td></tr>
423<tr><td><code><font color=#808080>\A</font></code></td><td>not <code>\a</code>  <font size=-2>VIM</font></td></tr>
424<tr><td><code><font color=#808080>\l</font></code></td><td>lowercase  <font size=-2>VIM</font></td></tr>
425<tr><td><code><font color=#808080>\L</font></code></td><td>not lowercase  <font size=-2>VIM</font></td></tr>
426<tr><td><code><font color=#808080>\u</font></code></td><td>uppercase  <font size=-2>VIM</font></td></tr>
427<tr><td><code><font color=#808080>\U</font></code></td><td>not uppercase  <font size=-2>VIM</font></td></tr>
428<tr><td><code><font color=#808080>\_x</font></code></td><td><code>\x</code> plus newline, for any <code>x</code>  <font size=-2>VIM</font></td></tr>
429<tr><td></td></tr>
430<tr><td colspan=2><b>Vim flags:</b></td></tr>
431<tr><td><code><font color=#808080>\c</font></code></td><td>ignore case  <font size=-2>VIM</font></td></tr>
432<tr><td><code><font color=#808080>\C</font></code></td><td>match case  <font size=-2>VIM</font></td></tr>
433<tr><td><code><font color=#808080>\m</font></code></td><td>magic  <font size=-2>VIM</font></td></tr>
434<tr><td><code><font color=#808080>\M</font></code></td><td>nomagic  <font size=-2>VIM</font></td></tr>
435<tr><td><code><font color=#808080>\v</font></code></td><td>verymagic  <font size=-2>VIM</font></td></tr>
436<tr><td><code><font color=#808080>\V</font></code></td><td>verynomagic  <font size=-2>VIM</font></td></tr>
437<tr><td><code><font color=#808080>\Z</font></code></td><td>ignore differences in Unicode combining characters  <font size=-2>VIM</font></td></tr>
438<tr><td></td></tr>
439<tr><td colspan=2><b>Magic:</b></td></tr>
440<tr><td><code><font color=#808080>(?{code})</font></code></td><td>arbitrary Perl code  <font size=-2>PERL</font></td></tr>
441<tr><td><code><font color=#808080>(??{code})</font></code></td><td>postponed arbitrary Perl code  <font size=-2>PERL</font></td></tr>
442<tr><td><code><font color=#808080>(?n)</font></code></td><td>recursive call to regexp capturing group <code>n</code> </td></tr>
443<tr><td><code><font color=#808080>(?+n)</font></code></td><td>recursive call to relative group <code>+n</code> </td></tr>
444<tr><td><code><font color=#808080>(?-n)</font></code></td><td>recursive call to relative group <code>-n</code> </td></tr>
445<tr><td><code><font color=#808080>(?C)</font></code></td><td>PCRE callout  <font size=-2>PCRE</font></td></tr>
446<tr><td><code><font color=#808080>(?R)</font></code></td><td>recursive call to entire regexp (≡ <code>(?0)</code>) </td></tr>
447<tr><td><code><font color=#808080>(?&amp;name)</font></code></td><td>recursive call to named group </td></tr>
448<tr><td><code><font color=#808080>(?P=name)</font></code></td><td>named backreference </td></tr>
449<tr><td><code><font color=#808080>(?P&gt;name)</font></code></td><td>recursive call to named group </td></tr>
450<tr><td><code><font color=#808080>(?(cond)true|false)</font></code></td><td>conditional branch </td></tr>
451<tr><td><code><font color=#808080>(?(cond)true)</font></code></td><td>conditional branch </td></tr>
452<tr><td><code><font color=#808080>(*ACCEPT)</font></code></td><td>make regexps more like Prolog </td></tr>
453<tr><td><code><font color=#808080>(*COMMIT)</font></code></td><td></td></tr>
454<tr><td><code><font color=#808080>(*F)</font></code></td><td></td></tr>
455<tr><td><code><font color=#808080>(*FAIL)</font></code></td><td></td></tr>
456<tr><td><code><font color=#808080>(*MARK)</font></code></td><td></td></tr>
457<tr><td><code><font color=#808080>(*PRUNE)</font></code></td><td></td></tr>
458<tr><td><code><font color=#808080>(*SKIP)</font></code></td><td></td></tr>
459<tr><td><code><font color=#808080>(*THEN)</font></code></td><td></td></tr>
460<tr><td><code><font color=#808080>(*ANY)</font></code></td><td>set newline convention </td></tr>
461<tr><td><code><font color=#808080>(*ANYCRLF)</font></code></td><td></td></tr>
462<tr><td><code><font color=#808080>(*CR)</font></code></td><td></td></tr>
463<tr><td><code><font color=#808080>(*CRLF)</font></code></td><td></td></tr>
464<tr><td><code><font color=#808080>(*LF)</font></code></td><td></td></tr>
465<tr><td><code><font color=#808080>(*BSR_ANYCRLF)</font></code></td><td>set \R convention  <font size=-2>PCRE</font></td></tr>
466<tr><td><code><font color=#808080>(*BSR_UNICODE)</font></code></td><td> <font size=-2>PCRE</font></td></tr>
467<tr><td></td></tr>
468</table>
469</body>
470</html>
471