|
dvander@2762
|
1 |
.TH PCRESYNTAX 3 |
|
dvander@2762
|
2 |
.SH NAME |
|
dvander@2762
|
3 |
PCRE - Perl-compatible regular expressions |
|
dvander@2762
|
4 |
.SH "PCRE REGULAR EXPRESSION SYNTAX SUMMARY" |
|
dvander@2762
|
5 |
.rs |
|
dvander@2762
|
6 |
.sp |
|
dvander@2762
|
7 |
The full syntax and semantics of the regular expressions that are supported by |
|
dvander@2762
|
8 |
PCRE are described in the |
|
dvander@2762
|
9 |
.\" HREF |
|
dvander@2762
|
10 |
\fBpcrepattern\fP |
|
dvander@2762
|
11 |
.\" |
|
dvander@2762
|
12 |
documentation. This document contains just a quick-reference summary of the |
|
dvander@2762
|
13 |
syntax. |
|
dvander@2762
|
14 |
. |
|
dvander@2762
|
15 |
. |
|
dvander@2762
|
16 |
.SH "QUOTING" |
|
dvander@2762
|
17 |
.rs |
|
dvander@2762
|
18 |
.sp |
|
dvander@2762
|
19 |
\ex where x is non-alphanumeric is a literal x |
|
dvander@2762
|
20 |
\eQ...\eE treat enclosed characters as literal |
|
dvander@2762
|
21 |
. |
|
dvander@2762
|
22 |
. |
|
dvander@2762
|
23 |
.SH "CHARACTERS" |
|
dvander@2762
|
24 |
.rs |
|
dvander@2762
|
25 |
.sp |
|
dvander@2762
|
26 |
\ea alarm, that is, the BEL character (hex 07) |
|
dvander@2762
|
27 |
\ecx "control-x", where x is any character |
|
dvander@2762
|
28 |
\ee escape (hex 1B) |
|
dvander@2762
|
29 |
\ef formfeed (hex 0C) |
|
dvander@2762
|
30 |
\en newline (hex 0A) |
|
dvander@2762
|
31 |
\er carriage return (hex 0D) |
|
dvander@2762
|
32 |
\et tab (hex 09) |
|
dvander@2762
|
33 |
\eddd character with octal code ddd, or backreference |
|
dvander@2762
|
34 |
\exhh character with hex code hh |
|
dvander@2762
|
35 |
\ex{hhh..} character with hex code hhh.. |
|
dvander@2762
|
36 |
. |
|
dvander@2762
|
37 |
. |
|
dvander@2762
|
38 |
.SH "CHARACTER TYPES" |
|
dvander@2762
|
39 |
.rs |
|
dvander@2762
|
40 |
.sp |
|
dvander@2762
|
41 |
. any character except newline; |
|
dvander@2762
|
42 |
in dotall mode, any character whatsoever |
|
dvander@2762
|
43 |
\eC one byte, even in UTF-8 mode (best avoided) |
|
dvander@2762
|
44 |
\ed a decimal digit |
|
dvander@2762
|
45 |
\eD a character that is not a decimal digit |
|
dvander@2762
|
46 |
\eh a horizontal whitespace character |
|
dvander@2762
|
47 |
\eH a character that is not a horizontal whitespace character |
|
dvander@2762
|
48 |
\ep{\fIxx\fP} a character with the \fIxx\fP property |
|
dvander@2762
|
49 |
\eP{\fIxx\fP} a character without the \fIxx\fP property |
|
dvander@2762
|
50 |
\eR a newline sequence |
|
dvander@2762
|
51 |
\es a whitespace character |
|
dvander@2762
|
52 |
\eS a character that is not a whitespace character |
|
dvander@2762
|
53 |
\ev a vertical whitespace character |
|
dvander@2762
|
54 |
\eV a character that is not a vertical whitespace character |
|
dvander@2762
|
55 |
\ew a "word" character |
|
dvander@2762
|
56 |
\eW a "non-word" character |
|
dvander@2762
|
57 |
\eX an extended Unicode sequence |
|
dvander@2762
|
58 |
.sp |
|
dvander@2762
|
59 |
In PCRE, \ed, \eD, \es, \eS, \ew, and \eW recognize only ASCII characters. |
|
dvander@2762
|
60 |
. |
|
dvander@2762
|
61 |
. |
|
dvander@2762
|
62 |
.SH "GENERAL CATEGORY PROPERTY CODES FOR \ep and \eP" |
|
dvander@2762
|
63 |
.rs |
|
dvander@2762
|
64 |
.sp |
|
dvander@2762
|
65 |
C Other |
|
dvander@2762
|
66 |
Cc Control |
|
dvander@2762
|
67 |
Cf Format |
|
dvander@2762
|
68 |
Cn Unassigned |
|
dvander@2762
|
69 |
Co Private use |
|
dvander@2762
|
70 |
Cs Surrogate |
|
dvander@2762
|
71 |
.sp |
|
dvander@2762
|
72 |
L Letter |
|
dvander@2762
|
73 |
Ll Lower case letter |
|
dvander@2762
|
74 |
Lm Modifier letter |
|
dvander@2762
|
75 |
Lo Other letter |
|
dvander@2762
|
76 |
Lt Title case letter |
|
dvander@2762
|
77 |
Lu Upper case letter |
|
dvander@2762
|
78 |
L& Ll, Lu, or Lt |
|
dvander@2762
|
79 |
.sp |
|
dvander@2762
|
80 |
M Mark |
|
dvander@2762
|
81 |
Mc Spacing mark |
|
dvander@2762
|
82 |
Me Enclosing mark |
|
dvander@2762
|
83 |
Mn Non-spacing mark |
|
dvander@2762
|
84 |
.sp |
|
dvander@2762
|
85 |
N Number |
|
dvander@2762
|
86 |
Nd Decimal number |
|
dvander@2762
|
87 |
Nl Letter number |
|
dvander@2762
|
88 |
No Other number |
|
dvander@2762
|
89 |
.sp |
|
dvander@2762
|
90 |
P Punctuation |
|
dvander@2762
|
91 |
Pc Connector punctuation |
|
dvander@2762
|
92 |
Pd Dash punctuation |
|
dvander@2762
|
93 |
Pe Close punctuation |
|
dvander@2762
|
94 |
Pf Final punctuation |
|
dvander@2762
|
95 |
Pi Initial punctuation |
|
dvander@2762
|
96 |
Po Other punctuation |
|
dvander@2762
|
97 |
Ps Open punctuation |
|
dvander@2762
|
98 |
.sp |
|
dvander@2762
|
99 |
S Symbol |
|
dvander@2762
|
100 |
Sc Currency symbol |
|
dvander@2762
|
101 |
Sk Modifier symbol |
|
dvander@2762
|
102 |
Sm Mathematical symbol |
|
dvander@2762
|
103 |
So Other symbol |
|
dvander@2762
|
104 |
.sp |
|
dvander@2762
|
105 |
Z Separator |
|
dvander@2762
|
106 |
Zl Line separator |
|
dvander@2762
|
107 |
Zp Paragraph separator |
|
dvander@2762
|
108 |
Zs Space separator |
|
dvander@2762
|
109 |
. |
|
dvander@2762
|
110 |
. |
|
dvander@2762
|
111 |
.SH "SCRIPT NAMES FOR \ep AND \eP" |
|
dvander@2762
|
112 |
.rs |
|
dvander@2762
|
113 |
.sp |
|
dvander@2762
|
114 |
Arabic, |
|
dvander@2762
|
115 |
Armenian, |
|
dvander@2762
|
116 |
Balinese, |
|
dvander@2762
|
117 |
Bengali, |
|
dvander@2762
|
118 |
Bopomofo, |
|
dvander@2762
|
119 |
Braille, |
|
dvander@2762
|
120 |
Buginese, |
|
dvander@2762
|
121 |
Buhid, |
|
dvander@2762
|
122 |
Canadian_Aboriginal, |
|
dvander@2762
|
123 |
Carian, |
|
dvander@2762
|
124 |
Cham, |
|
dvander@2762
|
125 |
Cherokee, |
|
dvander@2762
|
126 |
Common, |
|
dvander@2762
|
127 |
Coptic, |
|
dvander@2762
|
128 |
Cuneiform, |
|
dvander@2762
|
129 |
Cypriot, |
|
dvander@2762
|
130 |
Cyrillic, |
|
dvander@2762
|
131 |
Deseret, |
|
dvander@2762
|
132 |
Devanagari, |
|
dvander@2762
|
133 |
Ethiopic, |
|
dvander@2762
|
134 |
Georgian, |
|
dvander@2762
|
135 |
Glagolitic, |
|
dvander@2762
|
136 |
Gothic, |
|
dvander@2762
|
137 |
Greek, |
|
dvander@2762
|
138 |
Gujarati, |
|
dvander@2762
|
139 |
Gurmukhi, |
|
dvander@2762
|
140 |
Han, |
|
dvander@2762
|
141 |
Hangul, |
|
dvander@2762
|
142 |
Hanunoo, |
|
dvander@2762
|
143 |
Hebrew, |
|
dvander@2762
|
144 |
Hiragana, |
|
dvander@2762
|
145 |
Inherited, |
|
dvander@2762
|
146 |
Kannada, |
|
dvander@2762
|
147 |
Katakana, |
|
dvander@2762
|
148 |
Kayah_Li, |
|
dvander@2762
|
149 |
Kharoshthi, |
|
dvander@2762
|
150 |
Khmer, |
|
dvander@2762
|
151 |
Lao, |
|
dvander@2762
|
152 |
Latin, |
|
dvander@2762
|
153 |
Lepcha, |
|
dvander@2762
|
154 |
Limbu, |
|
dvander@2762
|
155 |
Linear_B, |
|
dvander@2762
|
156 |
Lycian, |
|
dvander@2762
|
157 |
Lydian, |
|
dvander@2762
|
158 |
Malayalam, |
|
dvander@2762
|
159 |
Mongolian, |
|
dvander@2762
|
160 |
Myanmar, |
|
dvander@2762
|
161 |
New_Tai_Lue, |
|
dvander@2762
|
162 |
Nko, |
|
dvander@2762
|
163 |
Ogham, |
|
dvander@2762
|
164 |
Old_Italic, |
|
dvander@2762
|
165 |
Old_Persian, |
|
dvander@2762
|
166 |
Ol_Chiki, |
|
dvander@2762
|
167 |
Oriya, |
|
dvander@2762
|
168 |
Osmanya, |
|
dvander@2762
|
169 |
Phags_Pa, |
|
dvander@2762
|
170 |
Phoenician, |
|
dvander@2762
|
171 |
Rejang, |
|
dvander@2762
|
172 |
Runic, |
|
dvander@2762
|
173 |
Saurashtra, |
|
dvander@2762
|
174 |
Shavian, |
|
dvander@2762
|
175 |
Sinhala, |
|
dvander@2762
|
176 |
Sudanese, |
|
dvander@2762
|
177 |
Syloti_Nagri, |
|
dvander@2762
|
178 |
Syriac, |
|
dvander@2762
|
179 |
Tagalog, |
|
dvander@2762
|
180 |
Tagbanwa, |
|
dvander@2762
|
181 |
Tai_Le, |
|
dvander@2762
|
182 |
Tamil, |
|
dvander@2762
|
183 |
Telugu, |
|
dvander@2762
|
184 |
Thaana, |
|
dvander@2762
|
185 |
Thai, |
|
dvander@2762
|
186 |
Tibetan, |
|
dvander@2762
|
187 |
Tifinagh, |
|
dvander@2762
|
188 |
Ugaritic, |
|
dvander@2762
|
189 |
Vai, |
|
dvander@2762
|
190 |
Yi. |
|
dvander@2762
|
191 |
. |
|
dvander@2762
|
192 |
. |
|
dvander@2762
|
193 |
.SH "CHARACTER CLASSES" |
|
dvander@2762
|
194 |
.rs |
|
dvander@2762
|
195 |
.sp |
|
dvander@2762
|
196 |
[...] positive character class |
|
dvander@2762
|
197 |
[^...] negative character class |
|
dvander@2762
|
198 |
[x-y] range (can be used for hex characters) |
|
dvander@2762
|
199 |
[[:xxx:]] positive POSIX named set |
|
dvander@2762
|
200 |
[[:^xxx:]] negative POSIX named set |
|
dvander@2762
|
201 |
.sp |
|
dvander@2762
|
202 |
alnum alphanumeric |
|
dvander@2762
|
203 |
alpha alphabetic |
|
dvander@2762
|
204 |
ascii 0-127 |
|
dvander@2762
|
205 |
blank space or tab |
|
dvander@2762
|
206 |
cntrl control character |
|
dvander@2762
|
207 |
digit decimal digit |
|
dvander@2762
|
208 |
graph printing, excluding space |
|
dvander@2762
|
209 |
lower lower case letter |
|
dvander@2762
|
210 |
print printing, including space |
|
dvander@2762
|
211 |
punct printing, excluding alphanumeric |
|
dvander@2762
|
212 |
space whitespace |
|
dvander@2762
|
213 |
upper upper case letter |
|
dvander@2762
|
214 |
word same as \ew |
|
dvander@2762
|
215 |
xdigit hexadecimal digit |
|
dvander@2762
|
216 |
.sp |
|
dvander@2762
|
217 |
In PCRE, POSIX character set names recognize only ASCII characters. You can use |
|
dvander@2762
|
218 |
\eQ...\eE inside a character class. |
|
dvander@2762
|
219 |
. |
|
dvander@2762
|
220 |
. |
|
dvander@2762
|
221 |
.SH "QUANTIFIERS" |
|
dvander@2762
|
222 |
.rs |
|
dvander@2762
|
223 |
.sp |
|
dvander@2762
|
224 |
? 0 or 1, greedy |
|
dvander@2762
|
225 |
?+ 0 or 1, possessive |
|
dvander@2762
|
226 |
?? 0 or 1, lazy |
|
dvander@2762
|
227 |
* 0 or more, greedy |
|
dvander@2762
|
228 |
*+ 0 or more, possessive |
|
dvander@2762
|
229 |
*? 0 or more, lazy |
|
dvander@2762
|
230 |
+ 1 or more, greedy |
|
dvander@2762
|
231 |
++ 1 or more, possessive |
|
dvander@2762
|
232 |
+? 1 or more, lazy |
|
dvander@2762
|
233 |
{n} exactly n |
|
dvander@2762
|
234 |
{n,m} at least n, no more than m, greedy |
|
dvander@2762
|
235 |
{n,m}+ at least n, no more than m, possessive |
|
dvander@2762
|
236 |
{n,m}? at least n, no more than m, lazy |
|
dvander@2762
|
237 |
{n,} n or more, greedy |
|
dvander@2762
|
238 |
{n,}+ n or more, possessive |
|
dvander@2762
|
239 |
{n,}? n or more, lazy |
|
dvander@2762
|
240 |
. |
|
dvander@2762
|
241 |
. |
|
dvander@2762
|
242 |
.SH "ANCHORS AND SIMPLE ASSERTIONS" |
|
dvander@2762
|
243 |
.rs |
|
dvander@2762
|
244 |
.sp |
|
dvander@2762
|
245 |
\eb word boundary (only ASCII letters recognized) |
|
dvander@2762
|
246 |
\eB not a word boundary |
|
dvander@2762
|
247 |
^ start of subject |
|
dvander@2762
|
248 |
also after internal newline in multiline mode |
|
dvander@2762
|
249 |
\eA start of subject |
|
dvander@2762
|
250 |
$ end of subject |
|
dvander@2762
|
251 |
also before newline at end of subject |
|
dvander@2762
|
252 |
also before internal newline in multiline mode |
|
dvander@2762
|
253 |
\eZ end of subject |
|
dvander@2762
|
254 |
also before newline at end of subject |
|
dvander@2762
|
255 |
\ez end of subject |
|
dvander@2762
|
256 |
\eG first matching position in subject |
|
dvander@2762
|
257 |
. |
|
dvander@2762
|
258 |
. |
|
dvander@2762
|
259 |
.SH "MATCH POINT RESET" |
|
dvander@2762
|
260 |
.rs |
|
dvander@2762
|
261 |
.sp |
|
dvander@2762
|
262 |
\eK reset start of match |
|
dvander@2762
|
263 |
. |
|
dvander@2762
|
264 |
. |
|
dvander@2762
|
265 |
.SH "ALTERNATION" |
|
dvander@2762
|
266 |
.rs |
|
dvander@2762
|
267 |
.sp |
|
dvander@2762
|
268 |
expr|expr|expr... |
|
dvander@2762
|
269 |
. |
|
dvander@2762
|
270 |
. |
|
dvander@2762
|
271 |
.SH "CAPTURING" |
|
dvander@2762
|
272 |
.rs |
|
dvander@2762
|
273 |
.sp |
|
dvander@2762
|
274 |
(...) capturing group |
|
dvander@2762
|
275 |
(?<name>...) named capturing group (Perl) |
|
dvander@2762
|
276 |
(?'name'...) named capturing group (Perl) |
|
dvander@2762
|
277 |
(?P<name>...) named capturing group (Python) |
|
dvander@2762
|
278 |
(?:...) non-capturing group |
|
dvander@2762
|
279 |
(?|...) non-capturing group; reset group numbers for |
|
dvander@2762
|
280 |
capturing groups in each alternative |
|
dvander@2762
|
281 |
. |
|
dvander@2762
|
282 |
. |
|
dvander@2762
|
283 |
.SH "ATOMIC GROUPS" |
|
dvander@2762
|
284 |
.rs |
|
dvander@2762
|
285 |
.sp |
|
dvander@2762
|
286 |
(?>...) atomic, non-capturing group |
|
dvander@2762
|
287 |
. |
|
dvander@2762
|
288 |
. |
|
dvander@2762
|
289 |
. |
|
dvander@2762
|
290 |
. |
|
dvander@2762
|
291 |
.SH "COMMENT" |
|
dvander@2762
|
292 |
.rs |
|
dvander@2762
|
293 |
.sp |
|
dvander@2762
|
294 |
(?#....) comment (not nestable) |
|
dvander@2762
|
295 |
. |
|
dvander@2762
|
296 |
. |
|
dvander@2762
|
297 |
.SH "OPTION SETTING" |
|
dvander@2762
|
298 |
.rs |
|
dvander@2762
|
299 |
.sp |
|
dvander@2762
|
300 |
(?i) caseless |
|
dvander@2762
|
301 |
(?J) allow duplicate names |
|
dvander@2762
|
302 |
(?m) multiline |
|
dvander@2762
|
303 |
(?s) single line (dotall) |
|
dvander@2762
|
304 |
(?U) default ungreedy (lazy) |
|
dvander@2762
|
305 |
(?x) extended (ignore white space) |
|
dvander@2762
|
306 |
(?-...) unset option(s) |
|
dvander@2762
|
307 |
.sp |
|
dvander@2762
|
308 |
The following is recognized only at the start of a pattern or after one of the |
|
dvander@2762
|
309 |
newline-setting options with similar syntax: |
|
dvander@2762
|
310 |
.sp |
|
dvander@2762
|
311 |
(*UTF8) set UTF-8 mode |
|
dvander@2762
|
312 |
. |
|
dvander@2762
|
313 |
. |
|
dvander@2762
|
314 |
.SH "LOOKAHEAD AND LOOKBEHIND ASSERTIONS" |
|
dvander@2762
|
315 |
.rs |
|
dvander@2762
|
316 |
.sp |
|
dvander@2762
|
317 |
(?=...) positive look ahead |
|
dvander@2762
|
318 |
(?!...) negative look ahead |
|
dvander@2762
|
319 |
(?<=...) positive look behind |
|
dvander@2762
|
320 |
(?<!...) negative look behind |
|
dvander@2762
|
321 |
.sp |
|
dvander@2762
|
322 |
Each top-level branch of a look behind must be of a fixed length. |
|
dvander@2762
|
323 |
. |
|
dvander@2762
|
324 |
. |
|
dvander@2762
|
325 |
.SH "BACKREFERENCES" |
|
dvander@2762
|
326 |
.rs |
|
dvander@2762
|
327 |
.sp |
|
dvander@2762
|
328 |
\en reference by number (can be ambiguous) |
|
dvander@2762
|
329 |
\egn reference by number |
|
dvander@2762
|
330 |
\eg{n} reference by number |
|
dvander@2762
|
331 |
\eg{-n} relative reference by number |
|
dvander@2762
|
332 |
\ek<name> reference by name (Perl) |
|
dvander@2762
|
333 |
\ek'name' reference by name (Perl) |
|
dvander@2762
|
334 |
\eg{name} reference by name (Perl) |
|
dvander@2762
|
335 |
\ek{name} reference by name (.NET) |
|
dvander@2762
|
336 |
(?P=name) reference by name (Python) |
|
dvander@2762
|
337 |
. |
|
dvander@2762
|
338 |
. |
|
dvander@2762
|
339 |
.SH "SUBROUTINE REFERENCES (POSSIBLY RECURSIVE)" |
|
dvander@2762
|
340 |
.rs |
|
dvander@2762
|
341 |
.sp |
|
dvander@2762
|
342 |
(?R) recurse whole pattern |
|
dvander@2762
|
343 |
(?n) call subpattern by absolute number |
|
dvander@2762
|
344 |
(?+n) call subpattern by relative number |
|
dvander@2762
|
345 |
(?-n) call subpattern by relative number |
|
dvander@2762
|
346 |
(?&name) call subpattern by name (Perl) |
|
dvander@2762
|
347 |
(?P>name) call subpattern by name (Python) |
|
dvander@2762
|
348 |
\eg<name> call subpattern by name (Oniguruma) |
|
dvander@2762
|
349 |
\eg'name' call subpattern by name (Oniguruma) |
|
dvander@2762
|
350 |
\eg<n> call subpattern by absolute number (Oniguruma) |
|
dvander@2762
|
351 |
\eg'n' call subpattern by absolute number (Oniguruma) |
|
dvander@2762
|
352 |
\eg<+n> call subpattern by relative number (PCRE extension) |
|
dvander@2762
|
353 |
\eg'+n' call subpattern by relative number (PCRE extension) |
|
dvander@2762
|
354 |
\eg<-n> call subpattern by relative number (PCRE extension) |
|
dvander@2762
|
355 |
\eg'-n' call subpattern by relative number (PCRE extension) |
|
dvander@2762
|
356 |
. |
|
dvander@2762
|
357 |
. |
|
dvander@2762
|
358 |
.SH "CONDITIONAL PATTERNS" |
|
dvander@2762
|
359 |
.rs |
|
dvander@2762
|
360 |
.sp |
|
dvander@2762
|
361 |
(?(condition)yes-pattern) |
|
dvander@2762
|
362 |
(?(condition)yes-pattern|no-pattern) |
|
dvander@2762
|
363 |
.sp |
|
dvander@2762
|
364 |
(?(n)... absolute reference condition |
|
dvander@2762
|
365 |
(?(+n)... relative reference condition |
|
dvander@2762
|
366 |
(?(-n)... relative reference condition |
|
dvander@2762
|
367 |
(?(<name>)... named reference condition (Perl) |
|
dvander@2762
|
368 |
(?('name')... named reference condition (Perl) |
|
dvander@2762
|
369 |
(?(name)... named reference condition (PCRE) |
|
dvander@2762
|
370 |
(?(R)... overall recursion condition |
|
dvander@2762
|
371 |
(?(Rn)... specific group recursion condition |
|
dvander@2762
|
372 |
(?(R&name)... specific recursion condition |
|
dvander@2762
|
373 |
(?(DEFINE)... define subpattern for reference |
|
dvander@2762
|
374 |
(?(assert)... assertion condition |
|
dvander@2762
|
375 |
. |
|
dvander@2762
|
376 |
. |
|
dvander@2762
|
377 |
.SH "BACKTRACKING CONTROL" |
|
dvander@2762
|
378 |
.rs |
|
dvander@2762
|
379 |
.sp |
|
dvander@2762
|
380 |
The following act immediately they are reached: |
|
dvander@2762
|
381 |
.sp |
|
dvander@2762
|
382 |
(*ACCEPT) force successful match |
|
dvander@2762
|
383 |
(*FAIL) force backtrack; synonym (*F) |
|
dvander@2762
|
384 |
.sp |
|
dvander@2762
|
385 |
The following act only when a subsequent match failure causes a backtrack to |
|
dvander@2762
|
386 |
reach them. They all force a match failure, but they differ in what happens |
|
dvander@2762
|
387 |
afterwards. Those that advance the start-of-match point do so only if the |
|
dvander@2762
|
388 |
pattern is not anchored. |
|
dvander@2762
|
389 |
.sp |
|
dvander@2762
|
390 |
(*COMMIT) overall failure, no advance of starting point |
|
dvander@2762
|
391 |
(*PRUNE) advance to next starting character |
|
dvander@2762
|
392 |
(*SKIP) advance start to current matching position |
|
dvander@2762
|
393 |
(*THEN) local failure, backtrack to next alternation |
|
dvander@2762
|
394 |
. |
|
dvander@2762
|
395 |
. |
|
dvander@2762
|
396 |
.SH "NEWLINE CONVENTIONS" |
|
dvander@2762
|
397 |
.rs |
|
dvander@2762
|
398 |
.sp |
|
dvander@2762
|
399 |
These are recognized only at the very start of the pattern or after a |
|
dvander@2762
|
400 |
(*BSR_...) or (*UTF8) option. |
|
dvander@2762
|
401 |
.sp |
|
dvander@2762
|
402 |
(*CR) carriage return only |
|
dvander@2762
|
403 |
(*LF) linefeed only |
|
dvander@2762
|
404 |
(*CRLF) carriage return followed by linefeed |
|
dvander@2762
|
405 |
(*ANYCRLF) all three of the above |
|
dvander@2762
|
406 |
(*ANY) any Unicode newline sequence |
|
dvander@2762
|
407 |
. |
|
dvander@2762
|
408 |
. |
|
dvander@2762
|
409 |
.SH "WHAT \eR MATCHES" |
|
dvander@2762
|
410 |
.rs |
|
dvander@2762
|
411 |
.sp |
|
dvander@2762
|
412 |
These are recognized only at the very start of the pattern or after a |
|
dvander@2762
|
413 |
(*...) option that sets the newline convention or UTF-8 mode. |
|
dvander@2762
|
414 |
.sp |
|
dvander@2762
|
415 |
(*BSR_ANYCRLF) CR, LF, or CRLF |
|
dvander@2762
|
416 |
(*BSR_UNICODE) any Unicode newline sequence |
|
dvander@2762
|
417 |
. |
|
dvander@2762
|
418 |
. |
|
dvander@2762
|
419 |
.SH "CALLOUTS" |
|
dvander@2762
|
420 |
.rs |
|
dvander@2762
|
421 |
.sp |
|
dvander@2762
|
422 |
(?C) callout |
|
dvander@2762
|
423 |
(?Cn) callout with data n |
|
dvander@2762
|
424 |
. |
|
dvander@2762
|
425 |
. |
|
dvander@2762
|
426 |
.SH "SEE ALSO" |
|
dvander@2762
|
427 |
.rs |
|
dvander@2762
|
428 |
.sp |
|
dvander@2762
|
429 |
\fBpcrepattern\fP(3), \fBpcreapi\fP(3), \fBpcrecallout\fP(3), |
|
dvander@2762
|
430 |
\fBpcrematching\fP(3), \fBpcre\fP(3). |
|
dvander@2762
|
431 |
. |
|
dvander@2762
|
432 |
. |
|
dvander@2762
|
433 |
.SH AUTHOR |
|
dvander@2762
|
434 |
.rs |
|
dvander@2762
|
435 |
.sp |
|
dvander@2762
|
436 |
.nf |
|
dvander@2762
|
437 |
Philip Hazel |
|
dvander@2762
|
438 |
University Computing Service |
|
dvander@2762
|
439 |
Cambridge CB2 3QH, England. |
|
dvander@2762
|
440 |
.fi |
|
dvander@2762
|
441 |
. |
|
dvander@2762
|
442 |
. |
|
dvander@2762
|
443 |
.SH REVISION |
|
dvander@2762
|
444 |
.rs |
|
dvander@2762
|
445 |
.sp |
|
dvander@2762
|
446 |
.nf |
|
dvander@2762
|
447 |
Last updated: 11 April 2009 |
|
dvander@2762
|
448 |
Copyright (c) 1997-2009 University of Cambridge. |
|
dvander@2762
|
449 |
.fi |