Home | History | Annotate | Download | only in doc
      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 colspan=2>See <a href="http://go/re2">http://go/re2</a> and <a href="http://go/re2quick">http://go/re2quick</a>.</td></tr>
     15 <tr><td></td></tr>
     16 <tr><td colspan=2><b>Single characters:</b></td></tr>
     17 <tr><td><code>.</code></td><td>any character, including newline (s=true)</td></tr>
     18 <tr><td><code>[xyz]</code></td><td>character class</td></tr>
     19 <tr><td><code>[^xyz]</code></td><td>negated character class</td></tr>
     20 <tr><td><code>\d</code></td><td>Perl character class</td></tr>
     21 <tr><td><code>\D</code></td><td>negated Perl character class</td></tr>
     22 <tr><td><code>[:alpha:]</code></td><td>ASCII character class</td></tr>
     23 <tr><td><code>[:^alpha:]</code></td><td>negated ASCII character class</td></tr>
     24 <tr><td><code>\pN</code></td><td>Unicode character class (one-letter name)</td></tr>
     25 <tr><td><code>\p{Greek}</code></td><td>Unicode character class</td></tr>
     26 <tr><td><code>\PN</code></td><td>negated Unicode character class (one-letter name)</td></tr>
     27 <tr><td><code>\P{Greek}</code></td><td>negated Unicode character class</td></tr>
     28 <tr><td></td></tr>
     29 <tr><td colspan=2><b>Composites:</b></td></tr>
     30 <tr><td><code>xy</code></td><td><code>x</code> followed by <code>y</code></td></tr>
     31 <tr><td><code>x|y</code></td><td><code>x</code> or <code>y</code> (prefer <code>x</code>)</td></tr>
     32 <tr><td></td></tr>
     33 <tr><td colspan=2><b>Repetitions:</b></td></tr>
     34 <tr><td><code>x*</code></td><td>zero or more <code>x</code>, prefer more</td></tr>
     35 <tr><td><code>x+</code></td><td>one or more <code>x</code>, prefer more</td></tr>
     36 <tr><td><code>x?</code></td><td>zero or one <code>x</code>, prefer one</td></tr>
     37 <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>
     38 <tr><td><code>x{n,}</code></td><td><code>n</code> or more <code>x</code>, prefer more</td></tr>
     39 <tr><td><code>x{n}</code></td><td>exactly <code>n</code> <code>x</code></td></tr>
     40 <tr><td><code>x*?</code></td><td>zero or more <code>x</code>, prefer fewer</td></tr>
     41 <tr><td><code>x+?</code></td><td>one or more <code>x</code>, prefer fewer</td></tr>
     42 <tr><td><code>x??</code></td><td>zero or one <code>x</code>, prefer zero</td></tr>
     43 <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>
     44 <tr><td><code>x{n,}?</code></td><td><code>n</code> or more <code>x</code>, prefer fewer</td></tr>
     45 <tr><td><code>x{n}?</code></td><td>exactly <code>n</code> <code>x</code></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{-}</font></code></td><td>( <code>x*?</code>)  <font size=-2>VIM</font></td></tr>
     48 <tr><td><code><font color=#808080>x{-n}</font></code></td><td>( <code>x{n}?</code>)  <font size=-2>VIM</font></td></tr>
     49 <tr><td><code><font color=#808080>x=</font></code></td><td>( <code>x?</code>)  <font size=-2>VIM</font></td></tr>
     50 <tr><td></td></tr>
     51 <tr><td colspan=2><b>Possessive repetitions:</b></td></tr>
     52 <tr><td><code><font color=#808080>x*+</font></code></td><td>zero or more <code>x</code>, possessive </td></tr>
     53 <tr><td><code><font color=#808080>x++</font></code></td><td>one or more <code>x</code>, possessive </td></tr>
     54 <tr><td><code><font color=#808080>x?+</font></code></td><td>zero or one <code>x</code>, possessive </td></tr>
     55 <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>
     56 <tr><td><code><font color=#808080>x{n,}+</font></code></td><td><code>n</code> or more <code>x</code>, possessive </td></tr>
     57 <tr><td><code><font color=#808080>x{n}+</font></code></td><td>exactly <code>n</code> <code>x</code>, possessive </td></tr>
     58 <tr><td></td></tr>
     59 <tr><td colspan=2><b>Grouping:</b></td></tr>
     60 <tr><td><code>(re)</code></td><td>numbered capturing group</td></tr>
     61 <tr><td><code>(?P&lt;name&gt;re)</code></td><td>named &amp; numbered capturing group</td></tr>
     62 <tr><td><code><font color=#808080>(?&lt;name&gt;re)</font></code></td><td>named &amp; numbered capturing group </td></tr>
     63 <tr><td><code><font color=#808080>(?'name're)</font></code></td><td>named &amp; numbered capturing group </td></tr>
     64 <tr><td><code>(?:re)</code></td><td>non-capturing group</td></tr>
     65 <tr><td><code>(?flags)</code></td><td>set flags until outer paren closes; non-capturing</td></tr>
     66 <tr><td><code>(?flags:re)</code></td><td>set flags during re; non-capturing</td></tr>
     67 <tr><td><code><font color=#808080>(?#text)</font></code></td><td>comment </td></tr>
     68 <tr><td><code><font color=#808080>(?|x|y|z)</font></code></td><td>branch numbering reset </td></tr>
     69 <tr><td><code><font color=#808080>(?&gt;re)</font></code></td><td>possessive match of <code>re</code> </td></tr>
     70 <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>
     71 <tr><td><code><font color=#808080>%(re)</font></code></td><td>non-capturing group  <font size=-2>VIM</font></td></tr>
     72 <tr><td></td></tr>
     73 <tr><td colspan=2><b>Flags:</b></td></tr>
     74 <tr><td><code>i</code></td><td>case-insensitive (default false)</td></tr>
     75 <tr><td><code>m</code></td><td>multi-line mode (default false)</td></tr>
     76 <tr><td><code>s</code></td><td>let <code>.</code> match <code>\n</code> (default false)</td></tr>
     77 <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>
     78 <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>
     79 <tr><td></td></tr>
     80 <tr><td colspan=2><b>Empty strings:</b></td></tr>
     81 <tr><td><code>^</code></td><td>at beginning of text or line (<code>m</code>=true)</td></tr>
     82 <tr><td><code>$</code></td><td>at end of text or line (<code>m</code>=true)</td></tr>
     83 <tr><td><code>\A</code></td><td>at beginning of text</td></tr>
     84 <tr><td><code>\b</code></td><td>at word boundary (<code>\w</code> to left and <code>\W</code> to right or vice versa)</td></tr>
     85 <tr><td><code>\B</code></td><td>not a word boundary</td></tr>
     86 <tr><td><code><font color=#808080>\G</font></code></td><td>at beginning of subtext being searched  <font size=-2>PCRE</font></td></tr>
     87 <tr><td><code><font color=#808080>\G</font></code></td><td>at end of last match  <font size=-2>PERL</font></td></tr>
     88 <tr><td><code><font color=#808080>\Z</font></code></td><td>at end of text, or before newline at end of text </td></tr>
     89 <tr><td><code>\z</code></td><td>at end of text</td></tr>
     90 <tr><td><code><font color=#808080>(?=re)</font></code></td><td>before text matching <code>re</code> </td></tr>
     91 <tr><td><code><font color=#808080>(?!re)</font></code></td><td>before text not matching <code>re</code> </td></tr>
     92 <tr><td><code><font color=#808080>(?&lt;=re)</font></code></td><td>after text matching <code>re</code> </td></tr>
     93 <tr><td><code><font color=#808080>(?&lt;!re)</font></code></td><td>after text not matching <code>re</code> </td></tr>
     94 <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>
     95 <tr><td><code><font color=#808080>re@=</font></code></td><td>before text matching <code>re</code>  <font size=-2>VIM</font></td></tr>
     96 <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>
     97 <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>
     98 <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>
     99 <tr><td><code><font color=#808080>\zs</font></code></td><td>sets start of match (= \K)  <font size=-2>VIM</font></td></tr>
    100 <tr><td><code><font color=#808080>\ze</font></code></td><td>sets end of match  <font size=-2>VIM</font></td></tr>
    101 <tr><td><code><font color=#808080>\%^</font></code></td><td>beginning of file  <font size=-2>VIM</font></td></tr>
    102 <tr><td><code><font color=#808080>\%$</font></code></td><td>end of file  <font size=-2>VIM</font></td></tr>
    103 <tr><td><code><font color=#808080>\%V</font></code></td><td>on screen  <font size=-2>VIM</font></td></tr>
    104 <tr><td><code><font color=#808080>\%#</font></code></td><td>cursor position  <font size=-2>VIM</font></td></tr>
    105 <tr><td><code><font color=#808080>\%'m</font></code></td><td>mark <code>m</code> position  <font size=-2>VIM</font></td></tr>
    106 <tr><td><code><font color=#808080>\%23l</font></code></td><td>in line 23  <font size=-2>VIM</font></td></tr>
    107 <tr><td><code><font color=#808080>\%23c</font></code></td><td>in column 23  <font size=-2>VIM</font></td></tr>
    108 <tr><td><code><font color=#808080>\%23v</font></code></td><td>in virtual column 23  <font size=-2>VIM</font></td></tr>
    109 <tr><td></td></tr>
    110 <tr><td colspan=2><b>Escape sequences:</b></td></tr>
    111 <tr><td><code>\a</code></td><td>bell ( <code>\007</code>)</td></tr>
    112 <tr><td><code>\f</code></td><td>form feed ( <code>\014</code>)</td></tr>
    113 <tr><td><code>\t</code></td><td>horizontal tab ( <code>\011</code>)</td></tr>
    114 <tr><td><code>\n</code></td><td>newline ( <code>\012</code>)</td></tr>
    115 <tr><td><code>\r</code></td><td>carriage return ( <code>\015</code>)</td></tr>
    116 <tr><td><code>\v</code></td><td>vertical tab character ( <code>\013</code>)</td></tr>
    117 <tr><td><code>\*</code></td><td>literal <code>*</code>, for any punctuation character <code>*</code></td></tr>
    118 <tr><td><code>\123</code></td><td>octal character code (up to three digits)</td></tr>
    119 <tr><td><code>\x7F</code></td><td>hex character code (exactly two digits)</td></tr>
    120 <tr><td><code>\x{10FFFF}</code></td><td>hex character code</td></tr>
    121 <tr><td><code>\C</code></td><td>match a single byte even in UTF-8 mode</td></tr>
    122 <tr><td><code>\Q...\E</code></td><td>literal text <code>...</code> even if <code>...</code> has punctuation</td></tr>
    123 <tr><td></td></tr>
    124 <tr><td><code><font color=#808080>\1</font></code></td><td>backreference </td></tr>
    125 <tr><td><code><font color=#808080>\b</font></code></td><td>backspace  (use <code>\010</code>)</td></tr>
    126 <tr><td><code><font color=#808080>\cK</font></code></td><td>control char ^K  (use <code>\001</code> etc)</td></tr>
    127 <tr><td><code><font color=#808080>\e</font></code></td><td>escape  (use <code>\033</code>)</td></tr>
    128 <tr><td><code><font color=#808080>\g1</font></code></td><td>backreference </td></tr>
    129 <tr><td><code><font color=#808080>\g{1}</font></code></td><td>backreference </td></tr>
    130 <tr><td><code><font color=#808080>\g{+1}</font></code></td><td>backreference </td></tr>
    131 <tr><td><code><font color=#808080>\g{-1}</font></code></td><td>backreference </td></tr>
    132 <tr><td><code><font color=#808080>\g{name}</font></code></td><td>named backreference </td></tr>
    133 <tr><td><code><font color=#808080>\g&lt;name&gt;</font></code></td><td>subroutine call </td></tr>
    134 <tr><td><code><font color=#808080>\g'name'</font></code></td><td>subroutine call </td></tr>
    135 <tr><td><code><font color=#808080>\k&lt;name&gt;</font></code></td><td>named backreference </td></tr>
    136 <tr><td><code><font color=#808080>\k'name'</font></code></td><td>named backreference </td></tr>
    137 <tr><td><code><font color=#808080>\lX</font></code></td><td>lowercase <code>X</code> </td></tr>
    138 <tr><td><code><font color=#808080>\ux</font></code></td><td>uppercase <code>x</code> </td></tr>
    139 <tr><td><code><font color=#808080>\L...\E</font></code></td><td>lowercase text <code>...</code> </td></tr>
    140 <tr><td><code><font color=#808080>\K</font></code></td><td>reset beginning of <code>$0</code> </td></tr>
    141 <tr><td><code><font color=#808080>\N{name}</font></code></td><td>named Unicode character </td></tr>
    142 <tr><td><code><font color=#808080>\R</font></code></td><td>line break </td></tr>
    143 <tr><td><code><font color=#808080>\U...\E</font></code></td><td>upper case text <code>...</code> </td></tr>
    144 <tr><td><code><font color=#808080>\X</font></code></td><td>extended Unicode sequence </td></tr>
    145 <tr><td></td></tr>
    146 <tr><td><code><font color=#808080>\%d123</font></code></td><td>decimal character 123  <font size=-2>VIM</font></td></tr>
    147 <tr><td><code><font color=#808080>\%xFF</font></code></td><td>hex character FF  <font size=-2>VIM</font></td></tr>
    148 <tr><td><code><font color=#808080>\%o123</font></code></td><td>octal character 123  <font size=-2>VIM</font></td></tr>
    149 <tr><td><code><font color=#808080>\%u1234</font></code></td><td>Unicode character 0x1234  <font size=-2>VIM</font></td></tr>
    150 <tr><td><code><font color=#808080>\%U12345678</font></code></td><td>Unicode character 0x12345678  <font size=-2>VIM</font></td></tr>
    151 <tr><td></td></tr>
    152 <tr><td colspan=2><b>Character class elements:</b></td></tr>
    153 <tr><td><code>x</code></td><td>single character</td></tr>
    154 <tr><td><code>A-Z</code></td><td>character range (inclusive)</td></tr>
    155 <tr><td><code>\d</code></td><td>Perl character class</td></tr>
    156 <tr><td><code>[:foo:]</code></td><td>ASCII character class <code>foo</code></td></tr>
    157 <tr><td><code>\p{Foo}</code></td><td>Unicode character class <code>Foo</code></td></tr>
    158 <tr><td><code>\pF</code></td><td>Unicode character class <code>F</code> (one-letter name)</td></tr>
    159 <tr><td></td></tr>
    160 <tr><td colspan=2><b>Named character classes as character class elements:</b></td></tr>
    161 <tr><td><code>[\d]</code></td><td>digits ( <code>\d</code>)</td></tr>
    162 <tr><td><code>[^\d]</code></td><td>not digits ( <code>\D</code>)</td></tr>
    163 <tr><td><code>[\D]</code></td><td>not digits ( <code>\D</code>)</td></tr>
    164 <tr><td><code>[^\D]</code></td><td>not not digits ( <code>\d</code>)</td></tr>
    165 <tr><td><code>[[:name:]]</code></td><td>named ASCII class inside character class ( <code>[:name:]</code>)</td></tr>
    166 <tr><td><code>[^[:name:]]</code></td><td>named ASCII class inside negated character class ( <code>[:^name:]</code>)</td></tr>
    167 <tr><td><code>[\p{Name}]</code></td><td>named Unicode property inside character class ( <code>\p{Name}</code>)</td></tr>
    168 <tr><td><code>[^\p{Name}]</code></td><td>named Unicode property inside negated character class ( <code>\P{Name}</code>)</td></tr>
    169 <tr><td></td></tr>
    170 <tr><td colspan=2><b>Perl character classes:</b></td></tr>
    171 <tr><td><code>\d</code></td><td>digits ( <code>[0-9]</code>)</td></tr>
    172 <tr><td><code>\D</code></td><td>not digits ( <code>[^0-9]</code>)</td></tr>
    173 <tr><td><code>\s</code></td><td>whitespace ( <code>[\t\n\f\r ]</code>)</td></tr>
    174 <tr><td><code>\S</code></td><td>not whitespace ( <code>[^\t\n\f\r ]</code>)</td></tr>
    175 <tr><td><code>\w</code></td><td>word characters ( <code>[0-9A-Za-z_]</code>)</td></tr>
    176 <tr><td><code>\W</code></td><td>not word characters ( <code>[^0-9A-Za-z_]</code>)</td></tr>
    177 <tr><td></td></tr>
    178 <tr><td><code><font color=#808080>\h</font></code></td><td>horizontal space </td></tr>
    179 <tr><td><code><font color=#808080>\H</font></code></td><td>not horizontal space </td></tr>
    180 <tr><td><code><font color=#808080>\v</font></code></td><td>vertical space </td></tr>
    181 <tr><td><code><font color=#808080>\V</font></code></td><td>not vertical space </td></tr>
    182 <tr><td></td></tr>
    183 <tr><td colspan=2><b>ASCII character classes:</b></td></tr>
    184 <tr><td><code>[:alnum:]</code></td><td>alphanumeric ( <code>[0-9A-Za-z]</code>)</td></tr>
    185 <tr><td><code>[:alpha:]</code></td><td>alphabetic ( <code>[A-Za-z]</code>)</td></tr>
    186 <tr><td><code>[:ascii:]</code></td><td>ASCII ( <code>[\x00-\x7F]</code>)</td></tr>
    187 <tr><td><code>[:blank:]</code></td><td>blank ( <code>[\t ]</code>)</td></tr>
    188 <tr><td><code>[:cntrl:]</code></td><td>control ( <code>[\x00-\x1F\x7F]</code>)</td></tr>
    189 <tr><td><code>[:digit:]</code></td><td>digits ( <code>[0-9]</code>)</td></tr>
    190 <tr><td><code>[:graph:]</code></td><td>graphical ( <code>[!-~] == [A-Za-z0-9!"#$%&amp;'()*+,\-./:;&lt;=&gt;?@[\\\]^_`{|}~]</code>)</td></tr>
    191 <tr><td><code>[:lower:]</code></td><td>lower case ( <code>[a-z]</code>)</td></tr>
    192 <tr><td><code>[:print:]</code></td><td>printable ( <code>[ -~] == [ [:graph:]]</code>)</td></tr>
    193 <tr><td><code>[:punct:]</code></td><td>punctuation ( <code>[!-/:-@[-`{-~]</code>)</td></tr>
    194 <tr><td><code>[:space:]</code></td><td>whitespace ( <code>[\t\n\v\f\r ]</code>)</td></tr>
    195 <tr><td><code>[:upper:]</code></td><td>upper case ( <code>[A-Z]</code>)</td></tr>
    196 <tr><td><code>[:word:]</code></td><td>word characters ( <code>[0-9A-Za-z_]</code>)</td></tr>
    197 <tr><td><code>[:xdigit:]</code></td><td>hex digit ( <code>[0-9A-Fa-f]</code>)</td></tr>
    198 <tr><td></td></tr>
    199 <tr><td colspan=2><b>Unicode character class names--general category:</b></td></tr>
    200 <tr><td><code>C</code></td><td>other</td></tr>
    201 <tr><td><code>Cc</code></td><td>control</td></tr>
    202 <tr><td><code>Cf</code></td><td>format</td></tr>
    203 <tr><td><code><font color=#808080>Cn</font></code></td><td>unassigned code points </td></tr>
    204 <tr><td><code>Co</code></td><td>private use</td></tr>
    205 <tr><td><code>Cs</code></td><td>surrogate</td></tr>
    206 <tr><td><code>L</code></td><td>letter</td></tr>
    207 <tr><td><code><font color=#808080>LC</font></code></td><td>cased letter </td></tr>
    208 <tr><td><code><font color=#808080>L&amp;</font></code></td><td>cased letter </td></tr>
    209 <tr><td><code>Ll</code></td><td>lowercase letter</td></tr>
    210 <tr><td><code>Lm</code></td><td>modifier letter</td></tr>
    211 <tr><td><code>Lo</code></td><td>other letter</td></tr>
    212 <tr><td><code>Lt</code></td><td>titlecase letter</td></tr>
    213 <tr><td><code>Lu</code></td><td>uppercase letter</td></tr>
    214 <tr><td><code>M</code></td><td>mark</td></tr>
    215 <tr><td><code>Mc</code></td><td>spacing mark</td></tr>
    216 <tr><td><code>Me</code></td><td>enclosing mark</td></tr>
    217 <tr><td><code>Mn</code></td><td>non-spacing mark</td></tr>
    218 <tr><td><code>N</code></td><td>number</td></tr>
    219 <tr><td><code>Nd</code></td><td>decimal number</td></tr>
    220 <tr><td><code>Nl</code></td><td>letter number</td></tr>
    221 <tr><td><code>No</code></td><td>other number</td></tr>
    222 <tr><td><code>P</code></td><td>punctuation</td></tr>
    223 <tr><td><code>Pc</code></td><td>connector punctuation</td></tr>
    224 <tr><td><code>Pd</code></td><td>dash punctuation</td></tr>
    225 <tr><td><code>Pe</code></td><td>close punctuation</td></tr>
    226 <tr><td><code>Pf</code></td><td>final punctuation</td></tr>
    227 <tr><td><code>Pi</code></td><td>initial punctuation</td></tr>
    228 <tr><td><code>Po</code></td><td>other punctuation</td></tr>
    229 <tr><td><code>Ps</code></td><td>open punctuation</td></tr>
    230 <tr><td><code>S</code></td><td>symbol</td></tr>
    231 <tr><td><code>Sc</code></td><td>currency symbol</td></tr>
    232 <tr><td><code>Sk</code></td><td>modifier symbol</td></tr>
    233 <tr><td><code>Sm</code></td><td>math symbol</td></tr>
    234 <tr><td><code>So</code></td><td>other symbol</td></tr>
    235 <tr><td><code>Z</code></td><td>separator</td></tr>
    236 <tr><td><code>Zl</code></td><td>line separator</td></tr>
    237 <tr><td><code>Zp</code></td><td>paragraph separator</td></tr>
    238 <tr><td><code>Zs</code></td><td>space separator</td></tr>
    239 <tr><td></td></tr>
    240 <tr><td colspan=2><b>Unicode character class names--scripts:</b></td></tr>
    241 <tr><td><code>Arabic</code></td><td>Arabic</td></tr>
    242 <tr><td><code>Armenian</code></td><td>Armenian</td></tr>
    243 <tr><td><code>Balinese</code></td><td>Balinese</td></tr>
    244 <tr><td><code>Bengali</code></td><td>Bengali</td></tr>
    245 <tr><td><code>Bopomofo</code></td><td>Bopomofo</td></tr>
    246 <tr><td><code>Braille</code></td><td>Braille</td></tr>
    247 <tr><td><code>Buginese</code></td><td>Buginese</td></tr>
    248 <tr><td><code>Buhid</code></td><td>Buhid</td></tr>
    249 <tr><td><code>Canadian_Aboriginal</code></td><td>Canadian Aboriginal</td></tr>
    250 <tr><td><code>Carian</code></td><td>Carian</td></tr>
    251 <tr><td><code>Cham</code></td><td>Cham</td></tr>
    252 <tr><td><code>Cherokee</code></td><td>Cherokee</td></tr>
    253 <tr><td><code>Common</code></td><td>characters not specific to one script</td></tr>
    254 <tr><td><code>Coptic</code></td><td>Coptic</td></tr>
    255 <tr><td><code>Cuneiform</code></td><td>Cuneiform</td></tr>
    256 <tr><td><code>Cypriot</code></td><td>Cypriot</td></tr>
    257 <tr><td><code>Cyrillic</code></td><td>Cyrillic</td></tr>
    258 <tr><td><code>Deseret</code></td><td>Deseret</td></tr>
    259 <tr><td><code>Devanagari</code></td><td>Devanagari</td></tr>
    260 <tr><td><code>Ethiopic</code></td><td>Ethiopic</td></tr>
    261 <tr><td><code>Georgian</code></td><td>Georgian</td></tr>
    262 <tr><td><code>Glagolitic</code></td><td>Glagolitic</td></tr>
    263 <tr><td><code>Gothic</code></td><td>Gothic</td></tr>
    264 <tr><td><code>Greek</code></td><td>Greek</td></tr>
    265 <tr><td><code>Gujarati</code></td><td>Gujarati</td></tr>
    266 <tr><td><code>Gurmukhi</code></td><td>Gurmukhi</td></tr>
    267 <tr><td><code>Han</code></td><td>Han</td></tr>
    268 <tr><td><code>Hangul</code></td><td>Hangul</td></tr>
    269 <tr><td><code>Hanunoo</code></td><td>Hanunoo</td></tr>
    270 <tr><td><code>Hebrew</code></td><td>Hebrew</td></tr>
    271 <tr><td><code>Hiragana</code></td><td>Hiragana</td></tr>
    272 <tr><td><code>Inherited</code></td><td>inherit script from previous character</td></tr>
    273 <tr><td><code>Kannada</code></td><td>Kannada</td></tr>
    274 <tr><td><code>Katakana</code></td><td>Katakana</td></tr>
    275 <tr><td><code>Kayah_Li</code></td><td>Kayah Li</td></tr>
    276 <tr><td><code>Kharoshthi</code></td><td>Kharoshthi</td></tr>
    277 <tr><td><code>Khmer</code></td><td>Khmer</td></tr>
    278 <tr><td><code>Lao</code></td><td>Lao</td></tr>
    279 <tr><td><code>Latin</code></td><td>Latin</td></tr>
    280 <tr><td><code>Lepcha</code></td><td>Lepcha</td></tr>
    281 <tr><td><code>Limbu</code></td><td>Limbu</td></tr>
    282 <tr><td><code>Linear_B</code></td><td>Linear B</td></tr>
    283 <tr><td><code>Lycian</code></td><td>Lycian</td></tr>
    284 <tr><td><code>Lydian</code></td><td>Lydian</td></tr>
    285 <tr><td><code>Malayalam</code></td><td>Malayalam</td></tr>
    286 <tr><td><code>Mongolian</code></td><td>Mongolian</td></tr>
    287 <tr><td><code>Myanmar</code></td><td>Myanmar</td></tr>
    288 <tr><td><code>New_Tai_Lue</code></td><td>New Tai Lue (aka Simplified Tai Lue)</td></tr>
    289 <tr><td><code>Nko</code></td><td>Nko</td></tr>
    290 <tr><td><code>Ogham</code></td><td>Ogham</td></tr>
    291 <tr><td><code>Ol_Chiki</code></td><td>Ol Chiki</td></tr>
    292 <tr><td><code>Old_Italic</code></td><td>Old Italic</td></tr>
    293 <tr><td><code>Old_Persian</code></td><td>Old Persian</td></tr>
    294 <tr><td><code>Oriya</code></td><td>Oriya</td></tr>
    295 <tr><td><code>Osmanya</code></td><td>Osmanya</td></tr>
    296 <tr><td><code>Phags_Pa</code></td><td>'Phags Pa</td></tr>
    297 <tr><td><code>Phoenician</code></td><td>Phoenician</td></tr>
    298 <tr><td><code>Rejang</code></td><td>Rejang</td></tr>
    299 <tr><td><code>Runic</code></td><td>Runic</td></tr>
    300 <tr><td><code>Saurashtra</code></td><td>Saurashtra</td></tr>
    301 <tr><td><code>Shavian</code></td><td>Shavian</td></tr>
    302 <tr><td><code>Sinhala</code></td><td>Sinhala</td></tr>
    303 <tr><td><code>Sundanese</code></td><td>Sundanese</td></tr>
    304 <tr><td><code>Syloti_Nagri</code></td><td>Syloti Nagri</td></tr>
    305 <tr><td><code>Syriac</code></td><td>Syriac</td></tr>
    306 <tr><td><code>Tagalog</code></td><td>Tagalog</td></tr>
    307 <tr><td><code>Tagbanwa</code></td><td>Tagbanwa</td></tr>
    308 <tr><td><code>Tai_Le</code></td><td>Tai Le</td></tr>
    309 <tr><td><code>Tamil</code></td><td>Tamil</td></tr>
    310 <tr><td><code>Telugu</code></td><td>Telugu</td></tr>
    311 <tr><td><code>Thaana</code></td><td>Thaana</td></tr>
    312 <tr><td><code>Thai</code></td><td>Thai</td></tr>
    313 <tr><td><code>Tibetan</code></td><td>Tibetan</td></tr>
    314 <tr><td><code>Tifinagh</code></td><td>Tifinagh</td></tr>
    315 <tr><td><code>Ugaritic</code></td><td>Ugaritic</td></tr>
    316 <tr><td><code>Vai</code></td><td>Vai</td></tr>
    317 <tr><td><code>Yi</code></td><td>Yi</td></tr>
    318 <tr><td></td></tr>
    319 <tr><td colspan=2><b>Vim character classes:</b></td></tr>
    320 <tr><td><code><font color=#808080>\i</font></code></td><td>identifier character  <font size=-2>VIM</font></td></tr>
    321 <tr><td><code><font color=#808080>\I</font></code></td><td><code>\i</code> except digits  <font size=-2>VIM</font></td></tr>
    322 <tr><td><code><font color=#808080>\k</font></code></td><td>keyword character  <font size=-2>VIM</font></td></tr>
    323 <tr><td><code><font color=#808080>\K</font></code></td><td><code>\k</code> except digits  <font size=-2>VIM</font></td></tr>
    324 <tr><td><code><font color=#808080>\f</font></code></td><td>file name character  <font size=-2>VIM</font></td></tr>
    325 <tr><td><code><font color=#808080>\F</font></code></td><td><code>\f</code> except digits  <font size=-2>VIM</font></td></tr>
    326 <tr><td><code><font color=#808080>\p</font></code></td><td>printable character  <font size=-2>VIM</font></td></tr>
    327 <tr><td><code><font color=#808080>\P</font></code></td><td><code>\p</code> except digits  <font size=-2>VIM</font></td></tr>
    328 <tr><td><code><font color=#808080>\s</font></code></td><td>whitespace character ( <code>[ \t]</code>)  <font size=-2>VIM</font></td></tr>
    329 <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>
    330 <tr><td><code>\d</code></td><td>digits ( <code>[0-9]</code>) <font size=-2>VIM</font></td></tr>
    331 <tr><td><code>\D</code></td><td>not <code>\d</code> <font size=-2>VIM</font></td></tr>
    332 <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>
    333 <tr><td><code><font color=#808080>\X</font></code></td><td>not <code>\x</code>  <font size=-2>VIM</font></td></tr>
    334 <tr><td><code><font color=#808080>\o</font></code></td><td>octal digits ( <code>[0-7]</code>)  <font size=-2>VIM</font></td></tr>
    335 <tr><td><code><font color=#808080>\O</font></code></td><td>not <code>\o</code>  <font size=-2>VIM</font></td></tr>
    336 <tr><td><code>\w</code></td><td>word character <font size=-2>VIM</font></td></tr>
    337 <tr><td><code>\W</code></td><td>not <code>\w</code> <font size=-2>VIM</font></td></tr>
    338 <tr><td><code><font color=#808080>\h</font></code></td><td>head of word character  <font size=-2>VIM</font></td></tr>
    339 <tr><td><code><font color=#808080>\H</font></code></td><td>not <code>\h</code>  <font size=-2>VIM</font></td></tr>
    340 <tr><td><code><font color=#808080>\a</font></code></td><td>alphabetic  <font size=-2>VIM</font></td></tr>
    341 <tr><td><code><font color=#808080>\A</font></code></td><td>not <code>\a</code>  <font size=-2>VIM</font></td></tr>
    342 <tr><td><code><font color=#808080>\l</font></code></td><td>lowercase  <font size=-2>VIM</font></td></tr>
    343 <tr><td><code><font color=#808080>\L</font></code></td><td>not lowercase  <font size=-2>VIM</font></td></tr>
    344 <tr><td><code><font color=#808080>\u</font></code></td><td>uppercase  <font size=-2>VIM</font></td></tr>
    345 <tr><td><code><font color=#808080>\U</font></code></td><td>not uppercase  <font size=-2>VIM</font></td></tr>
    346 <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>
    347 <tr><td></td></tr>
    348 <tr><td colspan=2><b>Vim flags:</b></td></tr>
    349 <tr><td><code><font color=#808080>\c</font></code></td><td>ignore case  <font size=-2>VIM</font></td></tr>
    350 <tr><td><code><font color=#808080>\C</font></code></td><td>match case  <font size=-2>VIM</font></td></tr>
    351 <tr><td><code><font color=#808080>\m</font></code></td><td>magic  <font size=-2>VIM</font></td></tr>
    352 <tr><td><code><font color=#808080>\M</font></code></td><td>nomagic  <font size=-2>VIM</font></td></tr>
    353 <tr><td><code><font color=#808080>\v</font></code></td><td>verymagic  <font size=-2>VIM</font></td></tr>
    354 <tr><td><code><font color=#808080>\V</font></code></td><td>verynomagic  <font size=-2>VIM</font></td></tr>
    355 <tr><td><code><font color=#808080>\Z</font></code></td><td>ignore differences in Unicode combining characters  <font size=-2>VIM</font></td></tr>
    356 <tr><td></td></tr>
    357 <tr><td colspan=2><b>Magic:</b></td></tr>
    358 <tr><td><code><font color=#808080>(?{code})</font></code></td><td>arbitrary Perl code  <font size=-2>PERL</font></td></tr>
    359 <tr><td><code><font color=#808080>(??{code})</font></code></td><td>postponed arbitrary Perl code  <font size=-2>PERL</font></td></tr>
    360 <tr><td><code><font color=#808080>(?n)</font></code></td><td>recursive call to regexp capturing group <code>n</code> </td></tr>
    361 <tr><td><code><font color=#808080>(?+n)</font></code></td><td>recursive call to relative group <code>+n</code> </td></tr>
    362 <tr><td><code><font color=#808080>(?-n)</font></code></td><td>recursive call to relative group <code>-n</code> </td></tr>
    363 <tr><td><code><font color=#808080>(?C)</font></code></td><td>PCRE callout  <font size=-2>PCRE</font></td></tr>
    364 <tr><td><code><font color=#808080>(?R)</font></code></td><td>recursive call to entire regexp ( <code>(?0)</code>) </td></tr>
    365 <tr><td><code><font color=#808080>(?&amp;name)</font></code></td><td>recursive call to named group </td></tr>
    366 <tr><td><code><font color=#808080>(?P=name)</font></code></td><td>named backreference </td></tr>
    367 <tr><td><code><font color=#808080>(?P&gt;name)</font></code></td><td>recursive call to named group </td></tr>
    368 <tr><td><code><font color=#808080>(?(cond)true|false)</font></code></td><td>conditional branch </td></tr>
    369 <tr><td><code><font color=#808080>(?(cond)true)</font></code></td><td>conditional branch </td></tr>
    370 <tr><td><code><font color=#808080>(*ACCEPT)</font></code></td><td>make regexps more like Prolog </td></tr>
    371 <tr><td><code><font color=#808080>(*COMMIT)</font></code></td><td></td></tr>
    372 <tr><td><code><font color=#808080>(*F)</font></code></td><td></td></tr>
    373 <tr><td><code><font color=#808080>(*FAIL)</font></code></td><td></td></tr>
    374 <tr><td><code><font color=#808080>(*MARK)</font></code></td><td></td></tr>
    375 <tr><td><code><font color=#808080>(*PRUNE)</font></code></td><td></td></tr>
    376 <tr><td><code><font color=#808080>(*SKIP)</font></code></td><td></td></tr>
    377 <tr><td><code><font color=#808080>(*THEN)</font></code></td><td></td></tr>
    378 <tr><td><code><font color=#808080>(*ANY)</font></code></td><td>set newline convention </td></tr>
    379 <tr><td><code><font color=#808080>(*ANYCRLF)</font></code></td><td></td></tr>
    380 <tr><td><code><font color=#808080>(*CR)</font></code></td><td></td></tr>
    381 <tr><td><code><font color=#808080>(*CRLF)</font></code></td><td></td></tr>
    382 <tr><td><code><font color=#808080>(*LF)</font></code></td><td></td></tr>
    383 <tr><td><code><font color=#808080>(*BSR_ANYCRLF)</font></code></td><td>set \R convention  <font size=-2>PCRE</font></td></tr>
    384 <tr><td><code><font color=#808080>(*BSR_UNICODE)</font></code></td><td> <font size=-2>PCRE</font></td></tr>
    385 <tr><td></td></tr>
    386 </table>
    387 </body>
    388 </html>
    389