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