Home | History | Annotate | Download | only in html
      1 <html>
      2 <head>
      3 <title>pcre2syntax specification</title>
      4 </head>
      5 <body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
      6 <h1>pcre2syntax man page</h1>
      7 <p>
      8 Return to the <a href="index.html">PCRE2 index page</a>.
      9 </p>
     10 <p>
     11 This page is part of the PCRE2 HTML documentation. It was generated
     12 automatically from the original man page. If there is any nonsense in it,
     13 please consult the man page, in case the conversion went wrong.
     14 <br>
     15 <ul>
     16 <li><a name="TOC1" href="#SEC1">PCRE2 REGULAR EXPRESSION SYNTAX SUMMARY</a>
     17 <li><a name="TOC2" href="#SEC2">QUOTING</a>
     18 <li><a name="TOC3" href="#SEC3">ESCAPED CHARACTERS</a>
     19 <li><a name="TOC4" href="#SEC4">CHARACTER TYPES</a>
     20 <li><a name="TOC5" href="#SEC5">GENERAL CATEGORY PROPERTIES FOR \p and \P</a>
     21 <li><a name="TOC6" href="#SEC6">PCRE2 SPECIAL CATEGORY PROPERTIES FOR \p and \P</a>
     22 <li><a name="TOC7" href="#SEC7">SCRIPT NAMES FOR \p AND \P</a>
     23 <li><a name="TOC8" href="#SEC8">CHARACTER CLASSES</a>
     24 <li><a name="TOC9" href="#SEC9">QUANTIFIERS</a>
     25 <li><a name="TOC10" href="#SEC10">ANCHORS AND SIMPLE ASSERTIONS</a>
     26 <li><a name="TOC11" href="#SEC11">REPORTED MATCH POINT SETTING</a>
     27 <li><a name="TOC12" href="#SEC12">ALTERNATION</a>
     28 <li><a name="TOC13" href="#SEC13">CAPTURING</a>
     29 <li><a name="TOC14" href="#SEC14">ATOMIC GROUPS</a>
     30 <li><a name="TOC15" href="#SEC15">COMMENT</a>
     31 <li><a name="TOC16" href="#SEC16">OPTION SETTING</a>
     32 <li><a name="TOC17" href="#SEC17">NEWLINE CONVENTION</a>
     33 <li><a name="TOC18" href="#SEC18">WHAT \R MATCHES</a>
     34 <li><a name="TOC19" href="#SEC19">LOOKAHEAD AND LOOKBEHIND ASSERTIONS</a>
     35 <li><a name="TOC20" href="#SEC20">BACKREFERENCES</a>
     36 <li><a name="TOC21" href="#SEC21">SUBROUTINE REFERENCES (POSSIBLY RECURSIVE)</a>
     37 <li><a name="TOC22" href="#SEC22">CONDITIONAL PATTERNS</a>
     38 <li><a name="TOC23" href="#SEC23">BACKTRACKING CONTROL</a>
     39 <li><a name="TOC24" href="#SEC24">CALLOUTS</a>
     40 <li><a name="TOC25" href="#SEC25">SEE ALSO</a>
     41 <li><a name="TOC26" href="#SEC26">AUTHOR</a>
     42 <li><a name="TOC27" href="#SEC27">REVISION</a>
     43 </ul>
     44 <br><a name="SEC1" href="#TOC1">PCRE2 REGULAR EXPRESSION SYNTAX SUMMARY</a><br>
     45 <P>
     46 The full syntax and semantics of the regular expressions that are supported by
     47 PCRE2 are described in the
     48 <a href="pcre2pattern.html"><b>pcre2pattern</b></a>
     49 documentation. This document contains a quick-reference summary of the syntax.
     50 </P>
     51 <br><a name="SEC2" href="#TOC1">QUOTING</a><br>
     52 <P>
     53 <pre>
     54   \x         where x is non-alphanumeric is a literal x
     55   \Q...\E    treat enclosed characters as literal
     56 </PRE>
     57 </P>
     58 <br><a name="SEC3" href="#TOC1">ESCAPED CHARACTERS</a><br>
     59 <P>
     60 This table applies to ASCII and Unicode environments.
     61 <pre>
     62   \a         alarm, that is, the BEL character (hex 07)
     63   \cx        "control-x", where x is any ASCII printing character
     64   \e         escape (hex 1B)
     65   \f         form feed (hex 0C)
     66   \n         newline (hex 0A)
     67   \r         carriage return (hex 0D)
     68   \t         tab (hex 09)
     69   \0dd       character with octal code 0dd
     70   \ddd       character with octal code ddd, or backreference
     71   \o{ddd..}  character with octal code ddd..
     72   \U         "U" if PCRE2_ALT_BSUX is set (otherwise is an error)
     73   \N{U+hh..} character with Unicode code point hh.. (Unicode mode only)
     74   \uhhhh     character with hex code hhhh (if PCRE2_ALT_BSUX is set)
     75   \xhh       character with hex code hh
     76   \x{hh..}   character with hex code hh..
     77 </pre>
     78 Note that \0dd is always an octal code. The treatment of backslash followed by
     79 a non-zero digit is complicated; for details see the section
     80 <a href="pcre2pattern.html#digitsafterbackslash">"Non-printing characters"</a>
     81 in the
     82 <a href="pcre2pattern.html"><b>pcre2pattern</b></a>
     83 documentation, where details of escape processing in EBCDIC environments are
     84 also given. \N{U+hh..} is synonymous with \x{hh..} in PCRE2 but is not
     85 supported in EBCDIC environments. Note that \N not followed by an opening
     86 curly bracket has a different meaning (see below).
     87 </P>
     88 <P>
     89 When \x is not followed by {, from zero to two hexadecimal digits are read,
     90 but if PCRE2_ALT_BSUX is set, \x must be followed by two hexadecimal digits to
     91 be recognized as a hexadecimal escape; otherwise it matches a literal "x".
     92 Likewise, if \u (in ALT_BSUX mode) is not followed by four hexadecimal digits,
     93 it matches a literal "u".
     94 </P>
     95 <br><a name="SEC4" href="#TOC1">CHARACTER TYPES</a><br>
     96 <P>
     97 <pre>
     98   .          any character except newline;
     99                in dotall mode, any character whatsoever
    100   \C         one code unit, even in UTF mode (best avoided)
    101   \d         a decimal digit
    102   \D         a character that is not a decimal digit
    103   \h         a horizontal white space character
    104   \H         a character that is not a horizontal white space character
    105   \N         a character that is not a newline
    106   \p{<i>xx</i>}     a character with the <i>xx</i> property
    107   \P{<i>xx</i>}     a character without the <i>xx</i> property
    108   \R         a newline sequence
    109   \s         a white space character
    110   \S         a character that is not a white space character
    111   \v         a vertical white space character
    112   \V         a character that is not a vertical white space character
    113   \w         a "word" character
    114   \W         a "non-word" character
    115   \X         a Unicode extended grapheme cluster
    116 </pre>
    117 \C is dangerous because it may leave the current matching point in the middle
    118 of a UTF-8 or UTF-16 character. The application can lock out the use of \C by
    119 setting the PCRE2_NEVER_BACKSLASH_C option. It is also possible to build PCRE2
    120 with the use of \C permanently disabled.
    121 </P>
    122 <P>
    123 By default, \d, \s, and \w match only ASCII characters, even in UTF-8 mode
    124 or in the 16-bit and 32-bit libraries. However, if locale-specific matching is
    125 happening, \s and \w may also match characters with code points in the range
    126 128-255. If the PCRE2_UCP option is set, the behaviour of these escape
    127 sequences is changed to use Unicode properties and they match many more
    128 characters.
    129 </P>
    130 <br><a name="SEC5" href="#TOC1">GENERAL CATEGORY PROPERTIES FOR \p and \P</a><br>
    131 <P>
    132 <pre>
    133   C          Other
    134   Cc         Control
    135   Cf         Format
    136   Cn         Unassigned
    137   Co         Private use
    138   Cs         Surrogate
    139 
    140   L          Letter
    141   Ll         Lower case letter
    142   Lm         Modifier letter
    143   Lo         Other letter
    144   Lt         Title case letter
    145   Lu         Upper case letter
    146   L&         Ll, Lu, or Lt
    147 
    148   M          Mark
    149   Mc         Spacing mark
    150   Me         Enclosing mark
    151   Mn         Non-spacing mark
    152 
    153   N          Number
    154   Nd         Decimal number
    155   Nl         Letter number
    156   No         Other number
    157 
    158   P          Punctuation
    159   Pc         Connector punctuation
    160   Pd         Dash punctuation
    161   Pe         Close punctuation
    162   Pf         Final punctuation
    163   Pi         Initial punctuation
    164   Po         Other punctuation
    165   Ps         Open punctuation
    166 
    167   S          Symbol
    168   Sc         Currency symbol
    169   Sk         Modifier symbol
    170   Sm         Mathematical symbol
    171   So         Other symbol
    172 
    173   Z          Separator
    174   Zl         Line separator
    175   Zp         Paragraph separator
    176   Zs         Space separator
    177 </PRE>
    178 </P>
    179 <br><a name="SEC6" href="#TOC1">PCRE2 SPECIAL CATEGORY PROPERTIES FOR \p and \P</a><br>
    180 <P>
    181 <pre>
    182   Xan        Alphanumeric: union of properties L and N
    183   Xps        POSIX space: property Z or tab, NL, VT, FF, CR
    184   Xsp        Perl space: property Z or tab, NL, VT, FF, CR
    185   Xuc        Univerally-named character: one that can be
    186                represented by a Universal Character Name
    187   Xwd        Perl word: property Xan or underscore
    188 </pre>
    189 Perl and POSIX space are now the same. Perl added VT to its space character set
    190 at release 5.18.
    191 </P>
    192 <br><a name="SEC7" href="#TOC1">SCRIPT NAMES FOR \p AND \P</a><br>
    193 <P>
    194 Adlam,
    195 Ahom,
    196 Anatolian_Hieroglyphs,
    197 Arabic,
    198 Armenian,
    199 Avestan,
    200 Balinese,
    201 Bamum,
    202 Bassa_Vah,
    203 Batak,
    204 Bengali,
    205 Bhaiksuki,
    206 Bopomofo,
    207 Brahmi,
    208 Braille,
    209 Buginese,
    210 Buhid,
    211 Canadian_Aboriginal,
    212 Carian,
    213 Caucasian_Albanian,
    214 Chakma,
    215 Cham,
    216 Cherokee,
    217 Common,
    218 Coptic,
    219 Cuneiform,
    220 Cypriot,
    221 Cyrillic,
    222 Deseret,
    223 Devanagari,
    224 Dogra,
    225 Duployan,
    226 Egyptian_Hieroglyphs,
    227 Elbasan,
    228 Ethiopic,
    229 Georgian,
    230 Glagolitic,
    231 Gothic,
    232 Grantha,
    233 Greek,
    234 Gujarati,
    235 Gunjala_Gondi,
    236 Gurmukhi,
    237 Han,
    238 Hangul,
    239 Hanifi_Rohingya,
    240 Hanunoo,
    241 Hatran,
    242 Hebrew,
    243 Hiragana,
    244 Imperial_Aramaic,
    245 Inherited,
    246 Inscriptional_Pahlavi,
    247 Inscriptional_Parthian,
    248 Javanese,
    249 Kaithi,
    250 Kannada,
    251 Katakana,
    252 Kayah_Li,
    253 Kharoshthi,
    254 Khmer,
    255 Khojki,
    256 Khudawadi,
    257 Lao,
    258 Latin,
    259 Lepcha,
    260 Limbu,
    261 Linear_A,
    262 Linear_B,
    263 Lisu,
    264 Lycian,
    265 Lydian,
    266 Mahajani,
    267 Makasar,
    268 Malayalam,
    269 Mandaic,
    270 Manichaean,
    271 Marchen,
    272 Masaram_Gondi,
    273 Medefaidrin,
    274 Meetei_Mayek,
    275 Mende_Kikakui,
    276 Meroitic_Cursive,
    277 Meroitic_Hieroglyphs,
    278 Miao,
    279 Modi,
    280 Mongolian,
    281 Mro,
    282 Multani,
    283 Myanmar,
    284 Nabataean,
    285 New_Tai_Lue,
    286 Newa,
    287 Nko,
    288 Nushu,
    289 Ogham,
    290 Ol_Chiki,
    291 Old_Hungarian,
    292 Old_Italic,
    293 Old_North_Arabian,
    294 Old_Permic,
    295 Old_Persian,
    296 Old_Sogdian,
    297 Old_South_Arabian,
    298 Old_Turkic,
    299 Oriya,
    300 Osage,
    301 Osmanya,
    302 Pahawh_Hmong,
    303 Palmyrene,
    304 Pau_Cin_Hau,
    305 Phags_Pa,
    306 Phoenician,
    307 Psalter_Pahlavi,
    308 Rejang,
    309 Runic,
    310 Samaritan,
    311 Saurashtra,
    312 Sharada,
    313 Shavian,
    314 Siddham,
    315 SignWriting,
    316 Sinhala,
    317 Sogdian,
    318 Sora_Sompeng,
    319 Soyombo,
    320 Sundanese,
    321 Syloti_Nagri,
    322 Syriac,
    323 Tagalog,
    324 Tagbanwa,
    325 Tai_Le,
    326 Tai_Tham,
    327 Tai_Viet,
    328 Takri,
    329 Tamil,
    330 Tangut,
    331 Telugu,
    332 Thaana,
    333 Thai,
    334 Tibetan,
    335 Tifinagh,
    336 Tirhuta,
    337 Ugaritic,
    338 Vai,
    339 Warang_Citi,
    340 Yi,
    341 Zanabazar_Square.
    342 </P>
    343 <br><a name="SEC8" href="#TOC1">CHARACTER CLASSES</a><br>
    344 <P>
    345 <pre>
    346   [...]       positive character class
    347   [^...]      negative character class
    348   [x-y]       range (can be used for hex characters)
    349   [[:xxx:]]   positive POSIX named set
    350   [[:^xxx:]]  negative POSIX named set
    351 
    352   alnum       alphanumeric
    353   alpha       alphabetic
    354   ascii       0-127
    355   blank       space or tab
    356   cntrl       control character
    357   digit       decimal digit
    358   graph       printing, excluding space
    359   lower       lower case letter
    360   print       printing, including space
    361   punct       printing, excluding alphanumeric
    362   space       white space
    363   upper       upper case letter
    364   word        same as \w
    365   xdigit      hexadecimal digit
    366 </pre>
    367 In PCRE2, POSIX character set names recognize only ASCII characters by default,
    368 but some of them use Unicode properties if PCRE2_UCP is set. You can use
    369 \Q...\E inside a character class.
    370 </P>
    371 <br><a name="SEC9" href="#TOC1">QUANTIFIERS</a><br>
    372 <P>
    373 <pre>
    374   ?           0 or 1, greedy
    375   ?+          0 or 1, possessive
    376   ??          0 or 1, lazy
    377   *           0 or more, greedy
    378   *+          0 or more, possessive
    379   *?          0 or more, lazy
    380   +           1 or more, greedy
    381   ++          1 or more, possessive
    382   +?          1 or more, lazy
    383   {n}         exactly n
    384   {n,m}       at least n, no more than m, greedy
    385   {n,m}+      at least n, no more than m, possessive
    386   {n,m}?      at least n, no more than m, lazy
    387   {n,}        n or more, greedy
    388   {n,}+       n or more, possessive
    389   {n,}?       n or more, lazy
    390 </PRE>
    391 </P>
    392 <br><a name="SEC10" href="#TOC1">ANCHORS AND SIMPLE ASSERTIONS</a><br>
    393 <P>
    394 <pre>
    395   \b          word boundary
    396   \B          not a word boundary
    397   ^           start of subject
    398                 also after an internal newline in multiline mode
    399                 (after any newline if PCRE2_ALT_CIRCUMFLEX is set)
    400   \A          start of subject
    401   $           end of subject
    402                 also before newline at end of subject
    403                 also before internal newline in multiline mode
    404   \Z          end of subject
    405                 also before newline at end of subject
    406   \z          end of subject
    407   \G          first matching position in subject
    408 </PRE>
    409 </P>
    410 <br><a name="SEC11" href="#TOC1">REPORTED MATCH POINT SETTING</a><br>
    411 <P>
    412 <pre>
    413   \K          set reported start of match
    414 </pre>
    415 \K is honoured in positive assertions, but ignored in negative ones.
    416 </P>
    417 <br><a name="SEC12" href="#TOC1">ALTERNATION</a><br>
    418 <P>
    419 <pre>
    420   expr|expr|expr...
    421 </PRE>
    422 </P>
    423 <br><a name="SEC13" href="#TOC1">CAPTURING</a><br>
    424 <P>
    425 <pre>
    426   (...)           capturing group
    427   (?&#60;name&#62;...)    named capturing group (Perl)
    428   (?'name'...)    named capturing group (Perl)
    429   (?P&#60;name&#62;...)   named capturing group (Python)
    430   (?:...)         non-capturing group
    431   (?|...)         non-capturing group; reset group numbers for
    432                    capturing groups in each alternative
    433 </PRE>
    434 </P>
    435 <br><a name="SEC14" href="#TOC1">ATOMIC GROUPS</a><br>
    436 <P>
    437 <pre>
    438   (?&#62;...)         atomic, non-capturing group
    439 </PRE>
    440 </P>
    441 <br><a name="SEC15" href="#TOC1">COMMENT</a><br>
    442 <P>
    443 <pre>
    444   (?#....)        comment (not nestable)
    445 </PRE>
    446 </P>
    447 <br><a name="SEC16" href="#TOC1">OPTION SETTING</a><br>
    448 <P>
    449 Changes of these options within a group are automatically cancelled at the end
    450 of the group.
    451 <pre>
    452   (?i)            caseless
    453   (?J)            allow duplicate names
    454   (?m)            multiline
    455   (?n)            no auto capture
    456   (?s)            single line (dotall)
    457   (?U)            default ungreedy (lazy)
    458   (?x)            extended: ignore white space except in classes
    459   (?xx)           as (?x) but also ignore space and tab in classes
    460   (?-...)         unset option(s)
    461   (?^)            unset imnsx options
    462 </pre>
    463 Unsetting x or xx unsets both. Several options may be set at once, and a
    464 mixture of setting and unsetting such as (?i-x) is allowed, but there may be
    465 only one hyphen. Setting (but no unsetting) is allowed after (?^ for example
    466 (?^in). An option setting may appear at the start of a non-capturing group, for
    467 example (?i:...).
    468 </P>
    469 <P>
    470 The following are recognized only at the very start of a pattern or after one
    471 of the newline or \R options with similar syntax. More than one of them may
    472 appear. For the first three, d is a decimal number.
    473 <pre>
    474   (*LIMIT_DEPTH=d) set the backtracking limit to d
    475   (*LIMIT_HEAP=d)  set the heap size limit to d * 1024 bytes
    476   (*LIMIT_MATCH=d) set the match limit to d
    477   (*NOTEMPTY)      set PCRE2_NOTEMPTY when matching
    478   (*NOTEMPTY_ATSTART) set PCRE2_NOTEMPTY_ATSTART when matching
    479   (*NO_AUTO_POSSESS) no auto-possessification (PCRE2_NO_AUTO_POSSESS)
    480   (*NO_DOTSTAR_ANCHOR) no .* anchoring (PCRE2_NO_DOTSTAR_ANCHOR)
    481   (*NO_JIT)       disable JIT optimization
    482   (*NO_START_OPT) no start-match optimization (PCRE2_NO_START_OPTIMIZE)
    483   (*UTF)          set appropriate UTF mode for the library in use
    484   (*UCP)          set PCRE2_UCP (use Unicode properties for \d etc)
    485 </pre>
    486 Note that LIMIT_DEPTH, LIMIT_HEAP, and LIMIT_MATCH can only reduce the value of
    487 the limits set by the caller of <b>pcre2_match()</b> or <b>pcre2_dfa_match()</b>,
    488 not increase them. LIMIT_RECURSION is an obsolete synonym for LIMIT_DEPTH. The
    489 application can lock out the use of (*UTF) and (*UCP) by setting the
    490 PCRE2_NEVER_UTF or PCRE2_NEVER_UCP options, respectively, at compile time.
    491 </P>
    492 <br><a name="SEC17" href="#TOC1">NEWLINE CONVENTION</a><br>
    493 <P>
    494 These are recognized only at the very start of the pattern or after option
    495 settings with a similar syntax.
    496 <pre>
    497   (*CR)           carriage return only
    498   (*LF)           linefeed only
    499   (*CRLF)         carriage return followed by linefeed
    500   (*ANYCRLF)      all three of the above
    501   (*ANY)          any Unicode newline sequence
    502   (*NUL)          the NUL character (binary zero)
    503 </PRE>
    504 </P>
    505 <br><a name="SEC18" href="#TOC1">WHAT \R MATCHES</a><br>
    506 <P>
    507 These are recognized only at the very start of the pattern or after option
    508 setting with a similar syntax.
    509 <pre>
    510   (*BSR_ANYCRLF)  CR, LF, or CRLF
    511   (*BSR_UNICODE)  any Unicode newline sequence
    512 </PRE>
    513 </P>
    514 <br><a name="SEC19" href="#TOC1">LOOKAHEAD AND LOOKBEHIND ASSERTIONS</a><br>
    515 <P>
    516 <pre>
    517   (?=...)         positive look ahead
    518   (?!...)         negative look ahead
    519   (?&#60;=...)        positive look behind
    520   (?&#60;!...)        negative look behind
    521 </pre>
    522 Each top-level branch of a look behind must be of a fixed length.
    523 </P>
    524 <br><a name="SEC20" href="#TOC1">BACKREFERENCES</a><br>
    525 <P>
    526 <pre>
    527   \n              reference by number (can be ambiguous)
    528   \gn             reference by number
    529   \g{n}           reference by number
    530   \g+n            relative reference by number (PCRE2 extension)
    531   \g-n            relative reference by number
    532   \g{+n}          relative reference by number (PCRE2 extension)
    533   \g{-n}          relative reference by number
    534   \k&#60;name&#62;        reference by name (Perl)
    535   \k'name'        reference by name (Perl)
    536   \g{name}        reference by name (Perl)
    537   \k{name}        reference by name (.NET)
    538   (?P=name)       reference by name (Python)
    539 </PRE>
    540 </P>
    541 <br><a name="SEC21" href="#TOC1">SUBROUTINE REFERENCES (POSSIBLY RECURSIVE)</a><br>
    542 <P>
    543 <pre>
    544   (?R)            recurse whole pattern
    545   (?n)            call subpattern by absolute number
    546   (?+n)           call subpattern by relative number
    547   (?-n)           call subpattern by relative number
    548   (?&name)        call subpattern by name (Perl)
    549   (?P&#62;name)       call subpattern by name (Python)
    550   \g&#60;name&#62;        call subpattern by name (Oniguruma)
    551   \g'name'        call subpattern by name (Oniguruma)
    552   \g&#60;n&#62;           call subpattern by absolute number (Oniguruma)
    553   \g'n'           call subpattern by absolute number (Oniguruma)
    554   \g&#60;+n&#62;          call subpattern by relative number (PCRE2 extension)
    555   \g'+n'          call subpattern by relative number (PCRE2 extension)
    556   \g&#60;-n&#62;          call subpattern by relative number (PCRE2 extension)
    557   \g'-n'          call subpattern by relative number (PCRE2 extension)
    558 </PRE>
    559 </P>
    560 <br><a name="SEC22" href="#TOC1">CONDITIONAL PATTERNS</a><br>
    561 <P>
    562 <pre>
    563   (?(condition)yes-pattern)
    564   (?(condition)yes-pattern|no-pattern)
    565 
    566   (?(n)               absolute reference condition
    567   (?(+n)              relative reference condition
    568   (?(-n)              relative reference condition
    569   (?(&#60;name&#62;)          named reference condition (Perl)
    570   (?('name')          named reference condition (Perl)
    571   (?(name)            named reference condition (PCRE2, deprecated)
    572   (?(R)               overall recursion condition
    573   (?(Rn)              specific numbered group recursion condition
    574   (?(R&name)          specific named group recursion condition
    575   (?(DEFINE)          define subpattern for reference
    576   (?(VERSION[&#62;]=n.m)  test PCRE2 version
    577   (?(assert)          assertion condition
    578 </pre>
    579 Note the ambiguity of (?(R) and (?(Rn) which might be named reference
    580 conditions or recursion tests. Such a condition is interpreted as a reference
    581 condition if the relevant named group exists.
    582 </P>
    583 <br><a name="SEC23" href="#TOC1">BACKTRACKING CONTROL</a><br>
    584 <P>
    585 All backtracking control verbs may be in the form (*VERB:NAME). For (*MARK) the
    586 name is mandatory, for the others it is optional. (*SKIP) changes its behaviour
    587 if :NAME is present. The others just set a name for passing back to the caller,
    588 but this is not a name that (*SKIP) can see. The following act immediately they
    589 are reached:
    590 <pre>
    591   (*ACCEPT)       force successful match
    592   (*FAIL)         force backtrack; synonym (*F)
    593   (*MARK:NAME)    set name to be passed back; synonym (*:NAME)
    594 </pre>
    595 The following act only when a subsequent match failure causes a backtrack to
    596 reach them. They all force a match failure, but they differ in what happens
    597 afterwards. Those that advance the start-of-match point do so only if the
    598 pattern is not anchored.
    599 <pre>
    600   (*COMMIT)       overall failure, no advance of starting point
    601   (*PRUNE)        advance to next starting character
    602   (*SKIP)         advance to current matching position
    603   (*SKIP:NAME)    advance to position corresponding to an earlier
    604                   (*MARK:NAME); if not found, the (*SKIP) is ignored
    605   (*THEN)         local failure, backtrack to next alternation
    606 </pre>
    607 The effect of one of these verbs in a group called as a subroutine is confined
    608 to the subroutine call.
    609 </P>
    610 <br><a name="SEC24" href="#TOC1">CALLOUTS</a><br>
    611 <P>
    612 <pre>
    613   (?C)            callout (assumed number 0)
    614   (?Cn)           callout with numerical data n
    615   (?C"text")      callout with string data
    616 </pre>
    617 The allowed string delimiters are ` ' " ^ % # $ (which are the same for the
    618 start and the end), and the starting delimiter { matched with the ending
    619 delimiter }. To encode the ending delimiter within the string, double it.
    620 </P>
    621 <br><a name="SEC25" href="#TOC1">SEE ALSO</a><br>
    622 <P>
    623 <b>pcre2pattern</b>(3), <b>pcre2api</b>(3), <b>pcre2callout</b>(3),
    624 <b>pcre2matching</b>(3), <b>pcre2</b>(3).
    625 </P>
    626 <br><a name="SEC26" href="#TOC1">AUTHOR</a><br>
    627 <P>
    628 Philip Hazel
    629 <br>
    630 University Computing Service
    631 <br>
    632 Cambridge, England.
    633 <br>
    634 </P>
    635 <br><a name="SEC27" href="#TOC1">REVISION</a><br>
    636 <P>
    637 Last updated: 02 September 2018
    638 <br>
    639 Copyright &copy; 1997-2018 University of Cambridge.
    640 <br>
    641 <p>
    642 Return to the <a href="index.html">PCRE2 index page</a>.
    643 </p>
    644