xref: /aosp_15_r20/external/pcre/testdata/testinput2 (revision 22dc650d8ae982c6770746019a6f94af92b0f024)
1*22dc650dSSadaf Ebrahimi# This set of tests is not Perl-compatible. It checks on special features
2*22dc650dSSadaf Ebrahimi# of PCRE2's API, error diagnostics, and the compiled code of some patterns.
3*22dc650dSSadaf Ebrahimi# It also checks the non-Perl syntax that PCRE2 supports (Python, .NET,
4*22dc650dSSadaf Ebrahimi# Oniguruma). There are also some tests where PCRE2 and Perl differ,
5*22dc650dSSadaf Ebrahimi# either because PCRE2 can't be compatible, or there is a possible Perl
6*22dc650dSSadaf Ebrahimi# bug.
7*22dc650dSSadaf Ebrahimi
8*22dc650dSSadaf Ebrahimi# NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9*22dc650dSSadaf Ebrahimi# test 5.
10*22dc650dSSadaf Ebrahimi
11*22dc650dSSadaf Ebrahimi#forbid_utf
12*22dc650dSSadaf Ebrahimi#newline_default lf any anycrlf
13*22dc650dSSadaf Ebrahimi
14*22dc650dSSadaf Ebrahimi# Test binary zeroes in the pattern
15*22dc650dSSadaf Ebrahimi
16*22dc650dSSadaf Ebrahimi# /a\0B/ where 0 is a binary zero
17*22dc650dSSadaf Ebrahimi/61 5c 00 62/B,hex
18*22dc650dSSadaf Ebrahimi    a\x{0}b
19*22dc650dSSadaf Ebrahimi
20*22dc650dSSadaf Ebrahimi# /a0b/ where 0 is a binary zero
21*22dc650dSSadaf Ebrahimi/61 00 62/B,hex
22*22dc650dSSadaf Ebrahimi    a\x{0}b
23*22dc650dSSadaf Ebrahimi
24*22dc650dSSadaf Ebrahimi# /(?#B0C)DE/ where 0 is a binary zero
25*22dc650dSSadaf Ebrahimi/28 3f 23 42 00 43 29 44 45/B,hex
26*22dc650dSSadaf Ebrahimi    DE
27*22dc650dSSadaf Ebrahimi
28*22dc650dSSadaf Ebrahimi/(a)b|/I
29*22dc650dSSadaf Ebrahimi
30*22dc650dSSadaf Ebrahimi/abc/I
31*22dc650dSSadaf Ebrahimi    abc
32*22dc650dSSadaf Ebrahimi    defabc
33*22dc650dSSadaf Ebrahimi    abc\=anchored
34*22dc650dSSadaf Ebrahimi\= Expect no match
35*22dc650dSSadaf Ebrahimi    defabc\=anchored
36*22dc650dSSadaf Ebrahimi    ABC
37*22dc650dSSadaf Ebrahimi
38*22dc650dSSadaf Ebrahimi/^abc/I
39*22dc650dSSadaf Ebrahimi    abc
40*22dc650dSSadaf Ebrahimi    abc\=anchored
41*22dc650dSSadaf Ebrahimi\= Expect no match
42*22dc650dSSadaf Ebrahimi    defabc
43*22dc650dSSadaf Ebrahimi    defabc\=anchored
44*22dc650dSSadaf Ebrahimi
45*22dc650dSSadaf Ebrahimi/a+bc/I
46*22dc650dSSadaf Ebrahimi
47*22dc650dSSadaf Ebrahimi/a*bc/I
48*22dc650dSSadaf Ebrahimi
49*22dc650dSSadaf Ebrahimi/a{3}bc/I
50*22dc650dSSadaf Ebrahimi
51*22dc650dSSadaf Ebrahimi/(abc|a+z)/I
52*22dc650dSSadaf Ebrahimi
53*22dc650dSSadaf Ebrahimi/^abc$/I
54*22dc650dSSadaf Ebrahimi    abc
55*22dc650dSSadaf Ebrahimi\= Expect no match
56*22dc650dSSadaf Ebrahimi    def\nabc
57*22dc650dSSadaf Ebrahimi
58*22dc650dSSadaf Ebrahimi/ab\idef/
59*22dc650dSSadaf Ebrahimi
60*22dc650dSSadaf Ebrahimi/(?X)ab\idef/
61*22dc650dSSadaf Ebrahimi
62*22dc650dSSadaf Ebrahimi/x{5,4}/
63*22dc650dSSadaf Ebrahimi
64*22dc650dSSadaf Ebrahimi/z{65536}/
65*22dc650dSSadaf Ebrahimi
66*22dc650dSSadaf Ebrahimi/[abcd/
67*22dc650dSSadaf Ebrahimi
68*22dc650dSSadaf Ebrahimi/[\B]/B
69*22dc650dSSadaf Ebrahimi
70*22dc650dSSadaf Ebrahimi/[\R]/B
71*22dc650dSSadaf Ebrahimi
72*22dc650dSSadaf Ebrahimi/[\X]/B
73*22dc650dSSadaf Ebrahimi
74*22dc650dSSadaf Ebrahimi/[z-a]/
75*22dc650dSSadaf Ebrahimi
76*22dc650dSSadaf Ebrahimi/^*/
77*22dc650dSSadaf Ebrahimi
78*22dc650dSSadaf Ebrahimi/(abc/
79*22dc650dSSadaf Ebrahimi
80*22dc650dSSadaf Ebrahimi/(?# abc/
81*22dc650dSSadaf Ebrahimi
82*22dc650dSSadaf Ebrahimi/(?z)abc/
83*22dc650dSSadaf Ebrahimi
84*22dc650dSSadaf Ebrahimi/.*b/I
85*22dc650dSSadaf Ebrahimi
86*22dc650dSSadaf Ebrahimi/.*?b/I
87*22dc650dSSadaf Ebrahimi
88*22dc650dSSadaf Ebrahimi/cat|dog|elephant/I
89*22dc650dSSadaf Ebrahimi    this sentence eventually mentions a cat
90*22dc650dSSadaf Ebrahimi    this sentences rambles on and on for a while and then reaches elephant
91*22dc650dSSadaf Ebrahimi
92*22dc650dSSadaf Ebrahimi/cat|dog|elephant/I
93*22dc650dSSadaf Ebrahimi    this sentence eventually mentions a cat
94*22dc650dSSadaf Ebrahimi    this sentences rambles on and on for a while and then reaches elephant
95*22dc650dSSadaf Ebrahimi
96*22dc650dSSadaf Ebrahimi/cat|dog|elephant/Ii
97*22dc650dSSadaf Ebrahimi    this sentence eventually mentions a CAT cat
98*22dc650dSSadaf Ebrahimi    this sentences rambles on and on for a while to elephant ElePhant
99*22dc650dSSadaf Ebrahimi
100*22dc650dSSadaf Ebrahimi/a|[bcd]/I
101*22dc650dSSadaf Ebrahimi
102*22dc650dSSadaf Ebrahimi/(a|[^\dZ])/I
103*22dc650dSSadaf Ebrahimi
104*22dc650dSSadaf Ebrahimi/(a|b)*[\s]/I
105*22dc650dSSadaf Ebrahimi
106*22dc650dSSadaf Ebrahimi/(ab\2)/
107*22dc650dSSadaf Ebrahimi
108*22dc650dSSadaf Ebrahimi/{4,5}abc/
109*22dc650dSSadaf Ebrahimi
110*22dc650dSSadaf Ebrahimi/(a)(b)(c)\2/I
111*22dc650dSSadaf Ebrahimi    abcb
112*22dc650dSSadaf Ebrahimi    abcb\=ovector=0
113*22dc650dSSadaf Ebrahimi    abcb\=ovector=1
114*22dc650dSSadaf Ebrahimi    abcb\=ovector=2
115*22dc650dSSadaf Ebrahimi    abcb\=ovector=3
116*22dc650dSSadaf Ebrahimi    abcb\=ovector=4
117*22dc650dSSadaf Ebrahimi
118*22dc650dSSadaf Ebrahimi/(a)bc|(a)(b)\2/I
119*22dc650dSSadaf Ebrahimi    abc
120*22dc650dSSadaf Ebrahimi    abc\=ovector=0
121*22dc650dSSadaf Ebrahimi    abc\=ovector=1
122*22dc650dSSadaf Ebrahimi    abc\=ovector=2
123*22dc650dSSadaf Ebrahimi    aba
124*22dc650dSSadaf Ebrahimi    aba\=ovector=0
125*22dc650dSSadaf Ebrahimi    aba\=ovector=1
126*22dc650dSSadaf Ebrahimi    aba\=ovector=2
127*22dc650dSSadaf Ebrahimi    aba\=ovector=3
128*22dc650dSSadaf Ebrahimi    aba\=ovector=4
129*22dc650dSSadaf Ebrahimi
130*22dc650dSSadaf Ebrahimi/abc$/I,dollar_endonly
131*22dc650dSSadaf Ebrahimi    abc
132*22dc650dSSadaf Ebrahimi\= Expect no match
133*22dc650dSSadaf Ebrahimi    abc\n
134*22dc650dSSadaf Ebrahimi    abc\ndef
135*22dc650dSSadaf Ebrahimi
136*22dc650dSSadaf Ebrahimi/(a)(b)(c)(d)(e)\6/
137*22dc650dSSadaf Ebrahimi
138*22dc650dSSadaf Ebrahimi/the quick brown fox/I
139*22dc650dSSadaf Ebrahimi    the quick brown fox
140*22dc650dSSadaf Ebrahimi    this is a line with the quick brown fox
141*22dc650dSSadaf Ebrahimi
142*22dc650dSSadaf Ebrahimi/the quick brown fox/I,anchored
143*22dc650dSSadaf Ebrahimi    the quick brown fox
144*22dc650dSSadaf Ebrahimi\= Expect no match
145*22dc650dSSadaf Ebrahimi    this is a line with the quick brown fox
146*22dc650dSSadaf Ebrahimi
147*22dc650dSSadaf Ebrahimi/ab(?z)cd/
148*22dc650dSSadaf Ebrahimi
149*22dc650dSSadaf Ebrahimi/^abc|def/I
150*22dc650dSSadaf Ebrahimi    abcdef
151*22dc650dSSadaf Ebrahimi    abcdef\=notbol
152*22dc650dSSadaf Ebrahimi
153*22dc650dSSadaf Ebrahimi/.*((abc)$|(def))/I
154*22dc650dSSadaf Ebrahimi    defabc
155*22dc650dSSadaf Ebrahimi    defabc\=noteol
156*22dc650dSSadaf Ebrahimi
157*22dc650dSSadaf Ebrahimi/)/
158*22dc650dSSadaf Ebrahimi
159*22dc650dSSadaf Ebrahimi/a[]b/
160*22dc650dSSadaf Ebrahimi
161*22dc650dSSadaf Ebrahimi/[^aeiou ]{3,}/I
162*22dc650dSSadaf Ebrahimi    co-processors, and for
163*22dc650dSSadaf Ebrahimi
164*22dc650dSSadaf Ebrahimi/<.*>/I
165*22dc650dSSadaf Ebrahimi    abc<def>ghi<klm>nop
166*22dc650dSSadaf Ebrahimi
167*22dc650dSSadaf Ebrahimi/<.*?>/I
168*22dc650dSSadaf Ebrahimi    abc<def>ghi<klm>nop
169*22dc650dSSadaf Ebrahimi
170*22dc650dSSadaf Ebrahimi/<.*>/I,ungreedy
171*22dc650dSSadaf Ebrahimi    abc<def>ghi<klm>nop
172*22dc650dSSadaf Ebrahimi
173*22dc650dSSadaf Ebrahimi/(?U)<.*>/I
174*22dc650dSSadaf Ebrahimi    abc<def>ghi<klm>nop
175*22dc650dSSadaf Ebrahimi
176*22dc650dSSadaf Ebrahimi/<.*?>/I,ungreedy
177*22dc650dSSadaf Ebrahimi    abc<def>ghi<klm>nop
178*22dc650dSSadaf Ebrahimi
179*22dc650dSSadaf Ebrahimi/={3,}/I,ungreedy
180*22dc650dSSadaf Ebrahimi    abc========def
181*22dc650dSSadaf Ebrahimi
182*22dc650dSSadaf Ebrahimi/(?U)={3,}?/I
183*22dc650dSSadaf Ebrahimi    abc========def
184*22dc650dSSadaf Ebrahimi
185*22dc650dSSadaf Ebrahimi/(?<!bar|cattle)foo/I
186*22dc650dSSadaf Ebrahimi    foo
187*22dc650dSSadaf Ebrahimi    catfoo
188*22dc650dSSadaf Ebrahimi\= Expect no match
189*22dc650dSSadaf Ebrahimi    the barfoo
190*22dc650dSSadaf Ebrahimi    and cattlefoo
191*22dc650dSSadaf Ebrahimi
192*22dc650dSSadaf Ebrahimi/abc(?<=a+)b/
193*22dc650dSSadaf Ebrahimi
194*22dc650dSSadaf Ebrahimi/(?<!(foo)a\1)bar/
195*22dc650dSSadaf Ebrahimi
196*22dc650dSSadaf Ebrahimi/(?i)abc/I
197*22dc650dSSadaf Ebrahimi
198*22dc650dSSadaf Ebrahimi/(a|(?m)a)/I
199*22dc650dSSadaf Ebrahimi
200*22dc650dSSadaf Ebrahimi/(?i)^1234/I
201*22dc650dSSadaf Ebrahimi
202*22dc650dSSadaf Ebrahimi/(^b|(?i)^d)/I
203*22dc650dSSadaf Ebrahimi
204*22dc650dSSadaf Ebrahimi/(?s).*/I
205*22dc650dSSadaf Ebrahimi
206*22dc650dSSadaf Ebrahimi/[abcd]/I
207*22dc650dSSadaf Ebrahimi
208*22dc650dSSadaf Ebrahimi/(?i)[abcd]/I
209*22dc650dSSadaf Ebrahimi
210*22dc650dSSadaf Ebrahimi/(?m)[xy]|(b|c)/I
211*22dc650dSSadaf Ebrahimi
212*22dc650dSSadaf Ebrahimi/(^a|^b)/Im
213*22dc650dSSadaf Ebrahimi
214*22dc650dSSadaf Ebrahimi/(?i)(^a|^b)/Im
215*22dc650dSSadaf Ebrahimi
216*22dc650dSSadaf Ebrahimi/(a)(?(1)a|b|c)/
217*22dc650dSSadaf Ebrahimi
218*22dc650dSSadaf Ebrahimi/(?(?=a)a|b|c)/
219*22dc650dSSadaf Ebrahimi
220*22dc650dSSadaf Ebrahimi/(?(1a)/
221*22dc650dSSadaf Ebrahimi
222*22dc650dSSadaf Ebrahimi/(?(1a))/
223*22dc650dSSadaf Ebrahimi
224*22dc650dSSadaf Ebrahimi/(?(?i))/
225*22dc650dSSadaf Ebrahimi
226*22dc650dSSadaf Ebrahimi/(?(abc))/
227*22dc650dSSadaf Ebrahimi
228*22dc650dSSadaf Ebrahimi/(?(?<ab))/
229*22dc650dSSadaf Ebrahimi
230*22dc650dSSadaf Ebrahimi/((?s)blah)\s+\1/I
231*22dc650dSSadaf Ebrahimi
232*22dc650dSSadaf Ebrahimi/((?i)blah)\s+\1/I
233*22dc650dSSadaf Ebrahimi
234*22dc650dSSadaf Ebrahimi/((?i)b)/IB
235*22dc650dSSadaf Ebrahimi
236*22dc650dSSadaf Ebrahimi/(a*b|(?i:c*(?-i)d))/I
237*22dc650dSSadaf Ebrahimi
238*22dc650dSSadaf Ebrahimi/a$/I
239*22dc650dSSadaf Ebrahimi    a
240*22dc650dSSadaf Ebrahimi    a\n
241*22dc650dSSadaf Ebrahimi\= Expect no match
242*22dc650dSSadaf Ebrahimi    a\=noteol
243*22dc650dSSadaf Ebrahimi    a\n\=noteol
244*22dc650dSSadaf Ebrahimi
245*22dc650dSSadaf Ebrahimi/a$/Im
246*22dc650dSSadaf Ebrahimi    a
247*22dc650dSSadaf Ebrahimi    a\n
248*22dc650dSSadaf Ebrahimi    a\n\=noteol
249*22dc650dSSadaf Ebrahimi\= Expect no match
250*22dc650dSSadaf Ebrahimi    a\=noteol
251*22dc650dSSadaf Ebrahimi
252*22dc650dSSadaf Ebrahimi/\Aabc/Im
253*22dc650dSSadaf Ebrahimi
254*22dc650dSSadaf Ebrahimi/^abc/Im
255*22dc650dSSadaf Ebrahimi
256*22dc650dSSadaf Ebrahimi/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
257*22dc650dSSadaf Ebrahimi  aaaaabbbbbcccccdef
258*22dc650dSSadaf Ebrahimi
259*22dc650dSSadaf Ebrahimi/(?<=foo)[ab]/I
260*22dc650dSSadaf Ebrahimi
261*22dc650dSSadaf Ebrahimi/(?<!foo)(alpha|omega)/I
262*22dc650dSSadaf Ebrahimi
263*22dc650dSSadaf Ebrahimi/(?!alphabet)[ab]/I
264*22dc650dSSadaf Ebrahimi
265*22dc650dSSadaf Ebrahimi/(?<=foo\n)^bar/Im
266*22dc650dSSadaf Ebrahimi    foo\nbarbar
267*22dc650dSSadaf Ebrahimi\= Expect no match
268*22dc650dSSadaf Ebrahimi    rhubarb
269*22dc650dSSadaf Ebrahimi    barbell
270*22dc650dSSadaf Ebrahimi    abc\nbarton
271*22dc650dSSadaf Ebrahimi
272*22dc650dSSadaf Ebrahimi/^(?<=foo\n)bar/Im
273*22dc650dSSadaf Ebrahimi    foo\nbarbar
274*22dc650dSSadaf Ebrahimi\= Expect no match
275*22dc650dSSadaf Ebrahimi    rhubarb
276*22dc650dSSadaf Ebrahimi    barbell
277*22dc650dSSadaf Ebrahimi    abc\nbarton
278*22dc650dSSadaf Ebrahimi
279*22dc650dSSadaf Ebrahimi/(?>^abc)/Im
280*22dc650dSSadaf Ebrahimi    abc
281*22dc650dSSadaf Ebrahimi    def\nabc
282*22dc650dSSadaf Ebrahimi\= Expect no match
283*22dc650dSSadaf Ebrahimi    defabc
284*22dc650dSSadaf Ebrahimi
285*22dc650dSSadaf Ebrahimi/(?<=ab(c+)d)ef/
286*22dc650dSSadaf Ebrahimi
287*22dc650dSSadaf Ebrahimi/(?<=ab(?<=c+)d)ef/
288*22dc650dSSadaf Ebrahimi
289*22dc650dSSadaf Ebrahimi/The next three are in testinput2 because they have variable length branches/
290*22dc650dSSadaf Ebrahimi
291*22dc650dSSadaf Ebrahimi/(?<=bullock|donkey)-cart/I
292*22dc650dSSadaf Ebrahimi    the bullock-cart
293*22dc650dSSadaf Ebrahimi    a donkey-cart race
294*22dc650dSSadaf Ebrahimi\= Expect no match
295*22dc650dSSadaf Ebrahimi    cart
296*22dc650dSSadaf Ebrahimi    horse-and-cart
297*22dc650dSSadaf Ebrahimi
298*22dc650dSSadaf Ebrahimi/(?<=ab(?i)x|y|z)/I
299*22dc650dSSadaf Ebrahimi
300*22dc650dSSadaf Ebrahimi/(?>.*)(?<=(abcd)|(xyz))/I
301*22dc650dSSadaf Ebrahimi    alphabetabcd
302*22dc650dSSadaf Ebrahimi    endingxyz
303*22dc650dSSadaf Ebrahimi
304*22dc650dSSadaf Ebrahimi/(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
305*22dc650dSSadaf Ebrahimi    abxyZZ
306*22dc650dSSadaf Ebrahimi    abXyZZ
307*22dc650dSSadaf Ebrahimi    ZZZ
308*22dc650dSSadaf Ebrahimi    zZZ
309*22dc650dSSadaf Ebrahimi    bZZ
310*22dc650dSSadaf Ebrahimi    BZZ
311*22dc650dSSadaf Ebrahimi\= Expect no match
312*22dc650dSSadaf Ebrahimi    ZZ
313*22dc650dSSadaf Ebrahimi    abXYZZ
314*22dc650dSSadaf Ebrahimi    zzz
315*22dc650dSSadaf Ebrahimi    bzz
316*22dc650dSSadaf Ebrahimi
317*22dc650dSSadaf Ebrahimi/(?<!(foo)a)bar/I
318*22dc650dSSadaf Ebrahimi    bar
319*22dc650dSSadaf Ebrahimi    foobbar
320*22dc650dSSadaf Ebrahimi\= Expect no match
321*22dc650dSSadaf Ebrahimi    fooabar
322*22dc650dSSadaf Ebrahimi
323*22dc650dSSadaf Ebrahimi# Perl does not fail these two for the final subjects.
324*22dc650dSSadaf Ebrahimi
325*22dc650dSSadaf Ebrahimi/^(xa|=?\1a){2}$/
326*22dc650dSSadaf Ebrahimi    xa=xaa
327*22dc650dSSadaf Ebrahimi\= Expect no match
328*22dc650dSSadaf Ebrahimi    xa=xaaa
329*22dc650dSSadaf Ebrahimi
330*22dc650dSSadaf Ebrahimi/^(xa|=?\1a)+$/
331*22dc650dSSadaf Ebrahimi    xa=xaa
332*22dc650dSSadaf Ebrahimi\= Expect no match
333*22dc650dSSadaf Ebrahimi    xa=xaaa
334*22dc650dSSadaf Ebrahimi
335*22dc650dSSadaf Ebrahimi# These are syntax tests from Perl 5.005
336*22dc650dSSadaf Ebrahimi
337*22dc650dSSadaf Ebrahimi/a[b-a]/
338*22dc650dSSadaf Ebrahimi
339*22dc650dSSadaf Ebrahimi/a[]b/
340*22dc650dSSadaf Ebrahimi
341*22dc650dSSadaf Ebrahimi/a[/
342*22dc650dSSadaf Ebrahimi
343*22dc650dSSadaf Ebrahimi/*a/
344*22dc650dSSadaf Ebrahimi
345*22dc650dSSadaf Ebrahimi/(*)b/
346*22dc650dSSadaf Ebrahimi
347*22dc650dSSadaf Ebrahimi/abc)/
348*22dc650dSSadaf Ebrahimi
349*22dc650dSSadaf Ebrahimi/(abc/
350*22dc650dSSadaf Ebrahimi
351*22dc650dSSadaf Ebrahimi/a**/
352*22dc650dSSadaf Ebrahimi
353*22dc650dSSadaf Ebrahimi/)(/
354*22dc650dSSadaf Ebrahimi
355*22dc650dSSadaf Ebrahimi/\1/
356*22dc650dSSadaf Ebrahimi
357*22dc650dSSadaf Ebrahimi/\2/
358*22dc650dSSadaf Ebrahimi
359*22dc650dSSadaf Ebrahimi/(a)|\2/
360*22dc650dSSadaf Ebrahimi
361*22dc650dSSadaf Ebrahimi/a[b-a]/Ii
362*22dc650dSSadaf Ebrahimi
363*22dc650dSSadaf Ebrahimi/a[]b/Ii
364*22dc650dSSadaf Ebrahimi
365*22dc650dSSadaf Ebrahimi/a[/Ii
366*22dc650dSSadaf Ebrahimi
367*22dc650dSSadaf Ebrahimi/*a/Ii
368*22dc650dSSadaf Ebrahimi
369*22dc650dSSadaf Ebrahimi/(*)b/Ii
370*22dc650dSSadaf Ebrahimi
371*22dc650dSSadaf Ebrahimi/abc)/Ii
372*22dc650dSSadaf Ebrahimi
373*22dc650dSSadaf Ebrahimi/(abc/Ii
374*22dc650dSSadaf Ebrahimi
375*22dc650dSSadaf Ebrahimi/a**/Ii
376*22dc650dSSadaf Ebrahimi
377*22dc650dSSadaf Ebrahimi/)(/Ii
378*22dc650dSSadaf Ebrahimi
379*22dc650dSSadaf Ebrahimi/:(?:/
380*22dc650dSSadaf Ebrahimi
381*22dc650dSSadaf Ebrahimi/(?<%)b/
382*22dc650dSSadaf Ebrahimi
383*22dc650dSSadaf Ebrahimi/a(?{)b/
384*22dc650dSSadaf Ebrahimi
385*22dc650dSSadaf Ebrahimi/a(?{{})b/
386*22dc650dSSadaf Ebrahimi
387*22dc650dSSadaf Ebrahimi/a(?{}})b/
388*22dc650dSSadaf Ebrahimi
389*22dc650dSSadaf Ebrahimi/a(?{"{"})b/
390*22dc650dSSadaf Ebrahimi
391*22dc650dSSadaf Ebrahimi/a(?{"{"}})b/
392*22dc650dSSadaf Ebrahimi
393*22dc650dSSadaf Ebrahimi/(?(1?)a|b)/
394*22dc650dSSadaf Ebrahimi
395*22dc650dSSadaf Ebrahimi/[a[:xyz:/
396*22dc650dSSadaf Ebrahimi
397*22dc650dSSadaf Ebrahimi/(?<=x+)y/
398*22dc650dSSadaf Ebrahimi
399*22dc650dSSadaf Ebrahimi/a{37,17}/
400*22dc650dSSadaf Ebrahimi
401*22dc650dSSadaf Ebrahimi/abc/\
402*22dc650dSSadaf Ebrahimi
403*22dc650dSSadaf Ebrahimi/abc/\i
404*22dc650dSSadaf Ebrahimi
405*22dc650dSSadaf Ebrahimi/(a)bc(d)/I
406*22dc650dSSadaf Ebrahimi    abcd
407*22dc650dSSadaf Ebrahimi    abcd\=copy=2
408*22dc650dSSadaf Ebrahimi    abcd\=copy=5
409*22dc650dSSadaf Ebrahimi
410*22dc650dSSadaf Ebrahimi/(.{20})/I
411*22dc650dSSadaf Ebrahimi    abcdefghijklmnopqrstuvwxyz
412*22dc650dSSadaf Ebrahimi    abcdefghijklmnopqrstuvwxyz\=copy=1
413*22dc650dSSadaf Ebrahimi    abcdefghijklmnopqrstuvwxyz\=get=1
414*22dc650dSSadaf Ebrahimi
415*22dc650dSSadaf Ebrahimi/(.{15})/I
416*22dc650dSSadaf Ebrahimi    abcdefghijklmnopqrstuvwxyz
417*22dc650dSSadaf Ebrahimi    abcdefghijklmnopqrstuvwxyz\=copy=1,get=1
418*22dc650dSSadaf Ebrahimi
419*22dc650dSSadaf Ebrahimi/(.{16})/I
420*22dc650dSSadaf Ebrahimi    abcdefghijklmnopqrstuvwxyz
421*22dc650dSSadaf Ebrahimi    abcdefghijklmnopqrstuvwxyz\=copy=1,get=1,getall
422*22dc650dSSadaf Ebrahimi
423*22dc650dSSadaf Ebrahimi/^(a|(bc))de(f)/I
424*22dc650dSSadaf Ebrahimi    adef\=get=1,get=2,get=3,get=4,getall
425*22dc650dSSadaf Ebrahimi    bcdef\=get=1,get=2,get=3,get=4,getall
426*22dc650dSSadaf Ebrahimi    adefghijk\=copy=0
427*22dc650dSSadaf Ebrahimi
428*22dc650dSSadaf Ebrahimi/^abc\00def/I
429*22dc650dSSadaf Ebrahimi    abc\00def\=copy=0,getall
430*22dc650dSSadaf Ebrahimi
431*22dc650dSSadaf Ebrahimi/word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
432*22dc650dSSadaf Ebrahimi)((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
433*22dc650dSSadaf Ebrahimi)?)?)?)?)?)?)?)?)?otherword/I
434*22dc650dSSadaf Ebrahimi
435*22dc650dSSadaf Ebrahimi/.*X/IB
436*22dc650dSSadaf Ebrahimi
437*22dc650dSSadaf Ebrahimi/.*X/IBs
438*22dc650dSSadaf Ebrahimi
439*22dc650dSSadaf Ebrahimi/(.*X|^B)/IB
440*22dc650dSSadaf Ebrahimi
441*22dc650dSSadaf Ebrahimi/(.*X|^B)/IBs
442*22dc650dSSadaf Ebrahimi
443*22dc650dSSadaf Ebrahimi/(?s)(.*X|^B)/IB
444*22dc650dSSadaf Ebrahimi
445*22dc650dSSadaf Ebrahimi/(?s:.*X|^B)/IB
446*22dc650dSSadaf Ebrahimi
447*22dc650dSSadaf Ebrahimi/\Biss\B/I,aftertext
448*22dc650dSSadaf Ebrahimi    Mississippi
449*22dc650dSSadaf Ebrahimi
450*22dc650dSSadaf Ebrahimi/iss/I,aftertext,altglobal
451*22dc650dSSadaf Ebrahimi    Mississippi
452*22dc650dSSadaf Ebrahimi
453*22dc650dSSadaf Ebrahimi/\Biss\B/I,aftertext,altglobal
454*22dc650dSSadaf Ebrahimi    Mississippi
455*22dc650dSSadaf Ebrahimi
456*22dc650dSSadaf Ebrahimi/\Biss\B/Ig,aftertext
457*22dc650dSSadaf Ebrahimi    Mississippi
458*22dc650dSSadaf Ebrahimi\= Expect no match
459*22dc650dSSadaf Ebrahimi    Mississippi\=anchored
460*22dc650dSSadaf Ebrahimi
461*22dc650dSSadaf Ebrahimi/(?<=[Ms])iss/Ig,aftertext
462*22dc650dSSadaf Ebrahimi    Mississippi
463*22dc650dSSadaf Ebrahimi
464*22dc650dSSadaf Ebrahimi/(?<=[Ms])iss/I,aftertext,altglobal
465*22dc650dSSadaf Ebrahimi    Mississippi
466*22dc650dSSadaf Ebrahimi
467*22dc650dSSadaf Ebrahimi/^iss/Ig,aftertext
468*22dc650dSSadaf Ebrahimi    ississippi
469*22dc650dSSadaf Ebrahimi
470*22dc650dSSadaf Ebrahimi/.*iss/Ig,aftertext
471*22dc650dSSadaf Ebrahimi    abciss\nxyzisspqr
472*22dc650dSSadaf Ebrahimi
473*22dc650dSSadaf Ebrahimi/.i./Ig,aftertext
474*22dc650dSSadaf Ebrahimi    Mississippi
475*22dc650dSSadaf Ebrahimi    Mississippi\=anchored
476*22dc650dSSadaf Ebrahimi    Missouri river
477*22dc650dSSadaf Ebrahimi    Missouri river\=anchored
478*22dc650dSSadaf Ebrahimi
479*22dc650dSSadaf Ebrahimi/^.is/Ig,aftertext
480*22dc650dSSadaf Ebrahimi    Mississippi
481*22dc650dSSadaf Ebrahimi
482*22dc650dSSadaf Ebrahimi/^ab\n/Ig,aftertext
483*22dc650dSSadaf Ebrahimi    ab\nab\ncd
484*22dc650dSSadaf Ebrahimi
485*22dc650dSSadaf Ebrahimi/^ab\n/Igm,aftertext
486*22dc650dSSadaf Ebrahimi    ab\nab\ncd
487*22dc650dSSadaf Ebrahimi
488*22dc650dSSadaf Ebrahimi/^/gm,newline=any
489*22dc650dSSadaf Ebrahimi    a\rb\nc\r\nxyz\=aftertext
490*22dc650dSSadaf Ebrahimi
491*22dc650dSSadaf Ebrahimi/abc/I
492*22dc650dSSadaf Ebrahimi
493*22dc650dSSadaf Ebrahimi/abc|bac/I
494*22dc650dSSadaf Ebrahimi
495*22dc650dSSadaf Ebrahimi/(abc|bac)/I
496*22dc650dSSadaf Ebrahimi
497*22dc650dSSadaf Ebrahimi/(abc|(c|dc))/I
498*22dc650dSSadaf Ebrahimi
499*22dc650dSSadaf Ebrahimi/(abc|(d|de)c)/I
500*22dc650dSSadaf Ebrahimi
501*22dc650dSSadaf Ebrahimi/a*/I
502*22dc650dSSadaf Ebrahimi
503*22dc650dSSadaf Ebrahimi/a+/I
504*22dc650dSSadaf Ebrahimi
505*22dc650dSSadaf Ebrahimi/(baa|a+)/I
506*22dc650dSSadaf Ebrahimi
507*22dc650dSSadaf Ebrahimi/a{0,3}/I
508*22dc650dSSadaf Ebrahimi
509*22dc650dSSadaf Ebrahimi/baa{3,}/I
510*22dc650dSSadaf Ebrahimi
511*22dc650dSSadaf Ebrahimi/"([^\\"]+|\\.)*"/I
512*22dc650dSSadaf Ebrahimi
513*22dc650dSSadaf Ebrahimi/(abc|ab[cd])/I
514*22dc650dSSadaf Ebrahimi
515*22dc650dSSadaf Ebrahimi/(a|.)/I
516*22dc650dSSadaf Ebrahimi
517*22dc650dSSadaf Ebrahimi/a|ba|\w/I
518*22dc650dSSadaf Ebrahimi
519*22dc650dSSadaf Ebrahimi/abc(?=pqr)/I
520*22dc650dSSadaf Ebrahimi
521*22dc650dSSadaf Ebrahimi/...(?<=abc)/I
522*22dc650dSSadaf Ebrahimi
523*22dc650dSSadaf Ebrahimi/abc(?!pqr)/I
524*22dc650dSSadaf Ebrahimi
525*22dc650dSSadaf Ebrahimi/ab./I
526*22dc650dSSadaf Ebrahimi
527*22dc650dSSadaf Ebrahimi/ab[xyz]/I
528*22dc650dSSadaf Ebrahimi
529*22dc650dSSadaf Ebrahimi/abc*/I
530*22dc650dSSadaf Ebrahimi
531*22dc650dSSadaf Ebrahimi/ab.c*/I
532*22dc650dSSadaf Ebrahimi
533*22dc650dSSadaf Ebrahimi/a.c*/I
534*22dc650dSSadaf Ebrahimi
535*22dc650dSSadaf Ebrahimi/.c*/I
536*22dc650dSSadaf Ebrahimi
537*22dc650dSSadaf Ebrahimi/ac*/I
538*22dc650dSSadaf Ebrahimi
539*22dc650dSSadaf Ebrahimi/(a.c*|b.c*)/I
540*22dc650dSSadaf Ebrahimi
541*22dc650dSSadaf Ebrahimi/a.c*|aba/I
542*22dc650dSSadaf Ebrahimi
543*22dc650dSSadaf Ebrahimi/.+a/I
544*22dc650dSSadaf Ebrahimi
545*22dc650dSSadaf Ebrahimi/(?=abcda)a.*/I
546*22dc650dSSadaf Ebrahimi
547*22dc650dSSadaf Ebrahimi/(?=a)a.*/I
548*22dc650dSSadaf Ebrahimi
549*22dc650dSSadaf Ebrahimi/a(b)*/I
550*22dc650dSSadaf Ebrahimi
551*22dc650dSSadaf Ebrahimi/a\d*/I
552*22dc650dSSadaf Ebrahimi
553*22dc650dSSadaf Ebrahimi/ab\d*/I
554*22dc650dSSadaf Ebrahimi
555*22dc650dSSadaf Ebrahimi/a(\d)*/I
556*22dc650dSSadaf Ebrahimi
557*22dc650dSSadaf Ebrahimi/abcde{0,0}/I
558*22dc650dSSadaf Ebrahimi
559*22dc650dSSadaf Ebrahimi/ab\d+/I
560*22dc650dSSadaf Ebrahimi
561*22dc650dSSadaf Ebrahimi/a(?(1)b)(.)/I
562*22dc650dSSadaf Ebrahimi
563*22dc650dSSadaf Ebrahimi/a(?(1)bag|big)(.)/I
564*22dc650dSSadaf Ebrahimi
565*22dc650dSSadaf Ebrahimi/a(?(1)bag|big)*(.)/I
566*22dc650dSSadaf Ebrahimi
567*22dc650dSSadaf Ebrahimi/a(?(1)bag|big)+(.)/I
568*22dc650dSSadaf Ebrahimi
569*22dc650dSSadaf Ebrahimi/a(?(1)b..|b..)(.)/I
570*22dc650dSSadaf Ebrahimi
571*22dc650dSSadaf Ebrahimi/ab\d{0}e/I
572*22dc650dSSadaf Ebrahimi
573*22dc650dSSadaf Ebrahimi/a?b?/I
574*22dc650dSSadaf Ebrahimi    a
575*22dc650dSSadaf Ebrahimi    b
576*22dc650dSSadaf Ebrahimi    ab
577*22dc650dSSadaf Ebrahimi    \
578*22dc650dSSadaf Ebrahimi\= Expect no match
579*22dc650dSSadaf Ebrahimi    \=notempty
580*22dc650dSSadaf Ebrahimi
581*22dc650dSSadaf Ebrahimi/|-/I
582*22dc650dSSadaf Ebrahimi    abcd
583*22dc650dSSadaf Ebrahimi    -abc
584*22dc650dSSadaf Ebrahimi    ab-c\=notempty
585*22dc650dSSadaf Ebrahimi\= Expect no match
586*22dc650dSSadaf Ebrahimi    abc\=notempty
587*22dc650dSSadaf Ebrahimi
588*22dc650dSSadaf Ebrahimi/^.?abcd/I
589*22dc650dSSadaf Ebrahimi
590*22dc650dSSadaf Ebrahimi/\(             # ( at start
591*22dc650dSSadaf Ebrahimi  (?:           # Non-capturing bracket
592*22dc650dSSadaf Ebrahimi  (?>[^()]+)    # Either a sequence of non-brackets (no backtracking)
593*22dc650dSSadaf Ebrahimi  |             # Or
594*22dc650dSSadaf Ebrahimi  (?R)          # Recurse - i.e. nested bracketed string
595*22dc650dSSadaf Ebrahimi  )*            # Zero or more contents
596*22dc650dSSadaf Ebrahimi  \)            # Closing )
597*22dc650dSSadaf Ebrahimi  /Ix
598*22dc650dSSadaf Ebrahimi    (abcd)
599*22dc650dSSadaf Ebrahimi    (abcd)xyz
600*22dc650dSSadaf Ebrahimi    xyz(abcd)
601*22dc650dSSadaf Ebrahimi    (ab(xy)cd)pqr
602*22dc650dSSadaf Ebrahimi    (ab(xycd)pqr
603*22dc650dSSadaf Ebrahimi    () abc ()
604*22dc650dSSadaf Ebrahimi    12(abcde(fsh)xyz(foo(bar))lmno)89
605*22dc650dSSadaf Ebrahimi\= Expect no match
606*22dc650dSSadaf Ebrahimi    abcd
607*22dc650dSSadaf Ebrahimi    abcd)
608*22dc650dSSadaf Ebrahimi    (abcd
609*22dc650dSSadaf Ebrahimi
610*22dc650dSSadaf Ebrahimi/\(  ( (?>[^()]+) | (?R) )* \) /Igx
611*22dc650dSSadaf Ebrahimi    (ab(xy)cd)pqr
612*22dc650dSSadaf Ebrahimi    1(abcd)(x(y)z)pqr
613*22dc650dSSadaf Ebrahimi
614*22dc650dSSadaf Ebrahimi/\(  (?: (?>[^()]+) | (?R) ) \) /Ix
615*22dc650dSSadaf Ebrahimi    (abcd)
616*22dc650dSSadaf Ebrahimi    (ab(xy)cd)
617*22dc650dSSadaf Ebrahimi    (a(b(c)d)e)
618*22dc650dSSadaf Ebrahimi    ((ab))
619*22dc650dSSadaf Ebrahimi\= Expect no match
620*22dc650dSSadaf Ebrahimi    ()
621*22dc650dSSadaf Ebrahimi
622*22dc650dSSadaf Ebrahimi/\(  (?: (?>[^()]+) | (?R) )? \) /Ix
623*22dc650dSSadaf Ebrahimi    ()
624*22dc650dSSadaf Ebrahimi    12(abcde(fsh)xyz(foo(bar))lmno)89
625*22dc650dSSadaf Ebrahimi
626*22dc650dSSadaf Ebrahimi/\(  ( (?>[^()]+) | (?R) )* \) /Ix
627*22dc650dSSadaf Ebrahimi    (ab(xy)cd)
628*22dc650dSSadaf Ebrahimi
629*22dc650dSSadaf Ebrahimi/\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
630*22dc650dSSadaf Ebrahimi    (ab(xy)cd)
631*22dc650dSSadaf Ebrahimi
632*22dc650dSSadaf Ebrahimi/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
633*22dc650dSSadaf Ebrahimi    (ab(xy)cd)
634*22dc650dSSadaf Ebrahimi    (123ab(xy)cd)
635*22dc650dSSadaf Ebrahimi
636*22dc650dSSadaf Ebrahimi/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
637*22dc650dSSadaf Ebrahimi    (ab(xy)cd)
638*22dc650dSSadaf Ebrahimi    (123ab(xy)cd)
639*22dc650dSSadaf Ebrahimi
640*22dc650dSSadaf Ebrahimi/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
641*22dc650dSSadaf Ebrahimi    (ab(xy)cd)
642*22dc650dSSadaf Ebrahimi
643*22dc650dSSadaf Ebrahimi/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
644*22dc650dSSadaf Ebrahimi    (abcd(xyz<p>qrs)123)
645*22dc650dSSadaf Ebrahimi
646*22dc650dSSadaf Ebrahimi/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
647*22dc650dSSadaf Ebrahimi    (ab(cd)ef)
648*22dc650dSSadaf Ebrahimi    (ab(cd(ef)gh)ij)
649*22dc650dSSadaf Ebrahimi
650*22dc650dSSadaf Ebrahimi/^[[:alnum:]]/IB
651*22dc650dSSadaf Ebrahimi
652*22dc650dSSadaf Ebrahimi/^[[:^alnum:]]/IB
653*22dc650dSSadaf Ebrahimi
654*22dc650dSSadaf Ebrahimi/^[[:alpha:]]/IB
655*22dc650dSSadaf Ebrahimi
656*22dc650dSSadaf Ebrahimi/^[[:^alpha:]]/IB
657*22dc650dSSadaf Ebrahimi
658*22dc650dSSadaf Ebrahimi/[_[:alpha:]]/I
659*22dc650dSSadaf Ebrahimi
660*22dc650dSSadaf Ebrahimi/^[[:ascii:]]/IB
661*22dc650dSSadaf Ebrahimi
662*22dc650dSSadaf Ebrahimi/^[[:^ascii:]]/IB
663*22dc650dSSadaf Ebrahimi
664*22dc650dSSadaf Ebrahimi/^[[:blank:]]/IB
665*22dc650dSSadaf Ebrahimi
666*22dc650dSSadaf Ebrahimi/^[[:^blank:]]/IB
667*22dc650dSSadaf Ebrahimi
668*22dc650dSSadaf Ebrahimi/[\n\x0b\x0c\x0d[:blank:]]/I
669*22dc650dSSadaf Ebrahimi
670*22dc650dSSadaf Ebrahimi/^[[:cntrl:]]/IB
671*22dc650dSSadaf Ebrahimi
672*22dc650dSSadaf Ebrahimi/^[[:digit:]]/IB
673*22dc650dSSadaf Ebrahimi
674*22dc650dSSadaf Ebrahimi/^[[:graph:]]/IB
675*22dc650dSSadaf Ebrahimi
676*22dc650dSSadaf Ebrahimi/^[[:lower:]]/IB
677*22dc650dSSadaf Ebrahimi
678*22dc650dSSadaf Ebrahimi/^[[:print:]]/IB
679*22dc650dSSadaf Ebrahimi
680*22dc650dSSadaf Ebrahimi/^[[:punct:]]/IB
681*22dc650dSSadaf Ebrahimi
682*22dc650dSSadaf Ebrahimi/^[[:space:]]/IB
683*22dc650dSSadaf Ebrahimi
684*22dc650dSSadaf Ebrahimi/^[[:upper:]]/IB
685*22dc650dSSadaf Ebrahimi
686*22dc650dSSadaf Ebrahimi/^[[:xdigit:]]/IB
687*22dc650dSSadaf Ebrahimi
688*22dc650dSSadaf Ebrahimi/^[[:word:]]/IB
689*22dc650dSSadaf Ebrahimi
690*22dc650dSSadaf Ebrahimi/^[[:^cntrl:]]/IB
691*22dc650dSSadaf Ebrahimi
692*22dc650dSSadaf Ebrahimi/^[12[:^digit:]]/IB
693*22dc650dSSadaf Ebrahimi
694*22dc650dSSadaf Ebrahimi/^[[:^blank:]]/IB
695*22dc650dSSadaf Ebrahimi
696*22dc650dSSadaf Ebrahimi/[01[:alpha:]%]/IB
697*22dc650dSSadaf Ebrahimi
698*22dc650dSSadaf Ebrahimi/[[.ch.]]/I
699*22dc650dSSadaf Ebrahimi
700*22dc650dSSadaf Ebrahimi/[[=ch=]]/I
701*22dc650dSSadaf Ebrahimi
702*22dc650dSSadaf Ebrahimi/[[:rhubarb:]]/I
703*22dc650dSSadaf Ebrahimi
704*22dc650dSSadaf Ebrahimi/[[:upper:]]/Ii
705*22dc650dSSadaf Ebrahimi    A
706*22dc650dSSadaf Ebrahimi    a
707*22dc650dSSadaf Ebrahimi
708*22dc650dSSadaf Ebrahimi/[[:lower:]]/Ii
709*22dc650dSSadaf Ebrahimi    A
710*22dc650dSSadaf Ebrahimi    a
711*22dc650dSSadaf Ebrahimi
712*22dc650dSSadaf Ebrahimi/((?-i)[[:lower:]])[[:lower:]]/Ii
713*22dc650dSSadaf Ebrahimi    ab
714*22dc650dSSadaf Ebrahimi    aB
715*22dc650dSSadaf Ebrahimi\= Expect no match
716*22dc650dSSadaf Ebrahimi    Ab
717*22dc650dSSadaf Ebrahimi    AB
718*22dc650dSSadaf Ebrahimi
719*22dc650dSSadaf Ebrahimi/[\200-\110]/I
720*22dc650dSSadaf Ebrahimi
721*22dc650dSSadaf Ebrahimi/^(?(0)f|b)oo/I
722*22dc650dSSadaf Ebrahimi
723*22dc650dSSadaf Ebrahimi# This one's here because of the large output vector needed
724*22dc650dSSadaf Ebrahimi
725*22dc650dSSadaf Ebrahimi/(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
726*22dc650dSSadaf Ebrahimi     1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC\=ovector=300
727*22dc650dSSadaf Ebrahimi
728*22dc650dSSadaf Ebrahimi# This one's here because Perl does this differently and PCRE2 can't at present
729*22dc650dSSadaf Ebrahimi
730*22dc650dSSadaf Ebrahimi/(main(O)?)+/I
731*22dc650dSSadaf Ebrahimi    mainmain
732*22dc650dSSadaf Ebrahimi    mainOmain
733*22dc650dSSadaf Ebrahimi
734*22dc650dSSadaf Ebrahimi# These are all cases where Perl does it differently (nested captures)
735*22dc650dSSadaf Ebrahimi
736*22dc650dSSadaf Ebrahimi/^(a(b)?)+$/I
737*22dc650dSSadaf Ebrahimi    aba
738*22dc650dSSadaf Ebrahimi
739*22dc650dSSadaf Ebrahimi/^(aa(bb)?)+$/I
740*22dc650dSSadaf Ebrahimi    aabbaa
741*22dc650dSSadaf Ebrahimi
742*22dc650dSSadaf Ebrahimi/^(aa|aa(bb))+$/I
743*22dc650dSSadaf Ebrahimi    aabbaa
744*22dc650dSSadaf Ebrahimi
745*22dc650dSSadaf Ebrahimi/^(aa(bb)??)+$/I
746*22dc650dSSadaf Ebrahimi    aabbaa
747*22dc650dSSadaf Ebrahimi
748*22dc650dSSadaf Ebrahimi/^(?:aa(bb)?)+$/I
749*22dc650dSSadaf Ebrahimi    aabbaa
750*22dc650dSSadaf Ebrahimi
751*22dc650dSSadaf Ebrahimi/^(aa(b(b))?)+$/I
752*22dc650dSSadaf Ebrahimi    aabbaa
753*22dc650dSSadaf Ebrahimi
754*22dc650dSSadaf Ebrahimi/^(?:aa(b(b))?)+$/I
755*22dc650dSSadaf Ebrahimi    aabbaa
756*22dc650dSSadaf Ebrahimi
757*22dc650dSSadaf Ebrahimi/^(?:aa(b(?:b))?)+$/I
758*22dc650dSSadaf Ebrahimi    aabbaa
759*22dc650dSSadaf Ebrahimi
760*22dc650dSSadaf Ebrahimi/^(?:aa(bb(?:b))?)+$/I
761*22dc650dSSadaf Ebrahimi    aabbbaa
762*22dc650dSSadaf Ebrahimi
763*22dc650dSSadaf Ebrahimi/^(?:aa(b(?:bb))?)+$/I
764*22dc650dSSadaf Ebrahimi    aabbbaa
765*22dc650dSSadaf Ebrahimi
766*22dc650dSSadaf Ebrahimi/^(?:aa(?:b(b))?)+$/I
767*22dc650dSSadaf Ebrahimi    aabbaa
768*22dc650dSSadaf Ebrahimi
769*22dc650dSSadaf Ebrahimi/^(?:aa(?:b(bb))?)+$/I
770*22dc650dSSadaf Ebrahimi    aabbbaa
771*22dc650dSSadaf Ebrahimi
772*22dc650dSSadaf Ebrahimi/^(aa(b(bb))?)+$/I
773*22dc650dSSadaf Ebrahimi    aabbbaa
774*22dc650dSSadaf Ebrahimi
775*22dc650dSSadaf Ebrahimi/^(aa(bb(bb))?)+$/I
776*22dc650dSSadaf Ebrahimi    aabbbbaa
777*22dc650dSSadaf Ebrahimi
778*22dc650dSSadaf Ebrahimi# ----------------
779*22dc650dSSadaf Ebrahimi
780*22dc650dSSadaf Ebrahimi/#/IBx
781*22dc650dSSadaf Ebrahimi
782*22dc650dSSadaf Ebrahimi/a#/IBx
783*22dc650dSSadaf Ebrahimi
784*22dc650dSSadaf Ebrahimi/[\s]/IB
785*22dc650dSSadaf Ebrahimi
786*22dc650dSSadaf Ebrahimi/[\S]/IB
787*22dc650dSSadaf Ebrahimi
788*22dc650dSSadaf Ebrahimi/a(?i)b/IB
789*22dc650dSSadaf Ebrahimi    ab
790*22dc650dSSadaf Ebrahimi    aB
791*22dc650dSSadaf Ebrahimi\= Expect no match
792*22dc650dSSadaf Ebrahimi    AB
793*22dc650dSSadaf Ebrahimi
794*22dc650dSSadaf Ebrahimi/(a(?i)b)/IB
795*22dc650dSSadaf Ebrahimi    ab
796*22dc650dSSadaf Ebrahimi    aB
797*22dc650dSSadaf Ebrahimi\= Expect no match
798*22dc650dSSadaf Ebrahimi    AB
799*22dc650dSSadaf Ebrahimi
800*22dc650dSSadaf Ebrahimi/   (?i)abc/IBx
801*22dc650dSSadaf Ebrahimi
802*22dc650dSSadaf Ebrahimi/#this is a comment
803*22dc650dSSadaf Ebrahimi  (?i)abc/IBx
804*22dc650dSSadaf Ebrahimi
805*22dc650dSSadaf Ebrahimi/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/IB
806*22dc650dSSadaf Ebrahimi
807*22dc650dSSadaf Ebrahimi/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/IB
808*22dc650dSSadaf Ebrahimi
809*22dc650dSSadaf Ebrahimi/\Q\E/IB
810*22dc650dSSadaf Ebrahimi    \
811*22dc650dSSadaf Ebrahimi
812*22dc650dSSadaf Ebrahimi/\Q\Ex/IB
813*22dc650dSSadaf Ebrahimi
814*22dc650dSSadaf Ebrahimi/ \Q\E/IB
815*22dc650dSSadaf Ebrahimi
816*22dc650dSSadaf Ebrahimi/a\Q\E/IB
817*22dc650dSSadaf Ebrahimi  abc
818*22dc650dSSadaf Ebrahimi  bca
819*22dc650dSSadaf Ebrahimi  bac
820*22dc650dSSadaf Ebrahimi
821*22dc650dSSadaf Ebrahimi/a\Q\Eb/IB
822*22dc650dSSadaf Ebrahimi  abc
823*22dc650dSSadaf Ebrahimi
824*22dc650dSSadaf Ebrahimi/\Q\Eabc/IB
825*22dc650dSSadaf Ebrahimi
826*22dc650dSSadaf Ebrahimi/x*+\w/IB
827*22dc650dSSadaf Ebrahimi\= Expect no match
828*22dc650dSSadaf Ebrahimi    xxxxx
829*22dc650dSSadaf Ebrahimi
830*22dc650dSSadaf Ebrahimi/x?+/IB
831*22dc650dSSadaf Ebrahimi
832*22dc650dSSadaf Ebrahimi/x++/IB
833*22dc650dSSadaf Ebrahimi
834*22dc650dSSadaf Ebrahimi/x{1,3}+/B,no_auto_possess
835*22dc650dSSadaf Ebrahimi
836*22dc650dSSadaf Ebrahimi/x{1,3}+/Bi,no_auto_possess
837*22dc650dSSadaf Ebrahimi
838*22dc650dSSadaf Ebrahimi/[^x]{1,3}+/B,no_auto_possess
839*22dc650dSSadaf Ebrahimi
840*22dc650dSSadaf Ebrahimi/[^x]{1,3}+/Bi,no_auto_possess
841*22dc650dSSadaf Ebrahimi
842*22dc650dSSadaf Ebrahimi/(x)*+/IB
843*22dc650dSSadaf Ebrahimi
844*22dc650dSSadaf Ebrahimi/^(\w++|\s++)*$/I
845*22dc650dSSadaf Ebrahimi    now is the time for all good men to come to the aid of the party
846*22dc650dSSadaf Ebrahimi\= Expect no match
847*22dc650dSSadaf Ebrahimi    this is not a line with only words and spaces!
848*22dc650dSSadaf Ebrahimi
849*22dc650dSSadaf Ebrahimi/(\d++)(\w)/I
850*22dc650dSSadaf Ebrahimi    12345a
851*22dc650dSSadaf Ebrahimi\= Expect no match
852*22dc650dSSadaf Ebrahimi    12345+
853*22dc650dSSadaf Ebrahimi
854*22dc650dSSadaf Ebrahimi/a++b/I
855*22dc650dSSadaf Ebrahimi    aaab
856*22dc650dSSadaf Ebrahimi
857*22dc650dSSadaf Ebrahimi/(a++b)/I
858*22dc650dSSadaf Ebrahimi    aaab
859*22dc650dSSadaf Ebrahimi
860*22dc650dSSadaf Ebrahimi/(a++)b/I
861*22dc650dSSadaf Ebrahimi    aaab
862*22dc650dSSadaf Ebrahimi
863*22dc650dSSadaf Ebrahimi/([^()]++|\([^()]*\))+/I
864*22dc650dSSadaf Ebrahimi    ((abc(ade)ufh()()x
865*22dc650dSSadaf Ebrahimi
866*22dc650dSSadaf Ebrahimi/\(([^()]++|\([^()]+\))+\)/I
867*22dc650dSSadaf Ebrahimi    (abc)
868*22dc650dSSadaf Ebrahimi    (abc(def)xyz)
869*22dc650dSSadaf Ebrahimi\= Expect no match
870*22dc650dSSadaf Ebrahimi    ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
871*22dc650dSSadaf Ebrahimi
872*22dc650dSSadaf Ebrahimi/(abc){1,3}+/IB
873*22dc650dSSadaf Ebrahimi
874*22dc650dSSadaf Ebrahimi/a+?+/I
875*22dc650dSSadaf Ebrahimi
876*22dc650dSSadaf Ebrahimi/a{2,3}?+b/I
877*22dc650dSSadaf Ebrahimi
878*22dc650dSSadaf Ebrahimi/(?U)a+?+/I
879*22dc650dSSadaf Ebrahimi
880*22dc650dSSadaf Ebrahimi/a{2,3}?+b/I,ungreedy
881*22dc650dSSadaf Ebrahimi
882*22dc650dSSadaf Ebrahimi/x(?U)a++b/IB
883*22dc650dSSadaf Ebrahimi    xaaaab
884*22dc650dSSadaf Ebrahimi
885*22dc650dSSadaf Ebrahimi/(?U)xa++b/IB
886*22dc650dSSadaf Ebrahimi    xaaaab
887*22dc650dSSadaf Ebrahimi
888*22dc650dSSadaf Ebrahimi/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/IB
889*22dc650dSSadaf Ebrahimi
890*22dc650dSSadaf Ebrahimi/^x(?U)a+b/IB
891*22dc650dSSadaf Ebrahimi
892*22dc650dSSadaf Ebrahimi/^x(?U)(a+)b/IB
893*22dc650dSSadaf Ebrahimi
894*22dc650dSSadaf Ebrahimi/[.x.]/I
895*22dc650dSSadaf Ebrahimi
896*22dc650dSSadaf Ebrahimi/[=x=]/I
897*22dc650dSSadaf Ebrahimi
898*22dc650dSSadaf Ebrahimi/[:x:]/I
899*22dc650dSSadaf Ebrahimi
900*22dc650dSSadaf Ebrahimi/\F/I
901*22dc650dSSadaf Ebrahimi
902*22dc650dSSadaf Ebrahimi/\l/I
903*22dc650dSSadaf Ebrahimi
904*22dc650dSSadaf Ebrahimi/\L/I
905*22dc650dSSadaf Ebrahimi
906*22dc650dSSadaf Ebrahimi/\N{name}/I
907*22dc650dSSadaf Ebrahimi
908*22dc650dSSadaf Ebrahimi/\u/I
909*22dc650dSSadaf Ebrahimi
910*22dc650dSSadaf Ebrahimi/\U/I
911*22dc650dSSadaf Ebrahimi
912*22dc650dSSadaf Ebrahimi/\N{4}/
913*22dc650dSSadaf Ebrahimi    abcdefg
914*22dc650dSSadaf Ebrahimi
915*22dc650dSSadaf Ebrahimi/\N{,}/
916*22dc650dSSadaf Ebrahimi
917*22dc650dSSadaf Ebrahimi/\N{25,ab}/
918*22dc650dSSadaf Ebrahimi
919*22dc650dSSadaf Ebrahimi/a{1,3}b/ungreedy
920*22dc650dSSadaf Ebrahimi    ab
921*22dc650dSSadaf Ebrahimi
922*22dc650dSSadaf Ebrahimi/[/I
923*22dc650dSSadaf Ebrahimi
924*22dc650dSSadaf Ebrahimi/[a-/I
925*22dc650dSSadaf Ebrahimi
926*22dc650dSSadaf Ebrahimi/[[:space:]/I
927*22dc650dSSadaf Ebrahimi
928*22dc650dSSadaf Ebrahimi/[\s]/IB
929*22dc650dSSadaf Ebrahimi
930*22dc650dSSadaf Ebrahimi/[[:space:]]/IB
931*22dc650dSSadaf Ebrahimi
932*22dc650dSSadaf Ebrahimi/[[:space:]abcde]/IB
933*22dc650dSSadaf Ebrahimi
934*22dc650dSSadaf Ebrahimi/< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
935*22dc650dSSadaf Ebrahimi    <>
936*22dc650dSSadaf Ebrahimi    <abcd>
937*22dc650dSSadaf Ebrahimi    <abc <123> hij>
938*22dc650dSSadaf Ebrahimi    <abc <def> hij>
939*22dc650dSSadaf Ebrahimi    <abc<>def>
940*22dc650dSSadaf Ebrahimi    <abc<>
941*22dc650dSSadaf Ebrahimi\= Expect no match
942*22dc650dSSadaf Ebrahimi    <abc
943*22dc650dSSadaf Ebrahimi
944*22dc650dSSadaf Ebrahimi/8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b/IB
945*22dc650dSSadaf Ebrahimi
946*22dc650dSSadaf Ebrahimi/\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b/IB
947*22dc650dSSadaf Ebrahimi
948*22dc650dSSadaf Ebrahimi/(.*)\d+\1/I
949*22dc650dSSadaf Ebrahimi
950*22dc650dSSadaf Ebrahimi/(.*)\d+/I
951*22dc650dSSadaf Ebrahimi
952*22dc650dSSadaf Ebrahimi/(.*)\d+\1/Is
953*22dc650dSSadaf Ebrahimi
954*22dc650dSSadaf Ebrahimi/(.*)\d+/Is
955*22dc650dSSadaf Ebrahimi
956*22dc650dSSadaf Ebrahimi/(.*(xyz))\d+\2/I
957*22dc650dSSadaf Ebrahimi
958*22dc650dSSadaf Ebrahimi/((.*))\d+\1/I
959*22dc650dSSadaf Ebrahimi    abc123bc
960*22dc650dSSadaf Ebrahimi
961*22dc650dSSadaf Ebrahimi/a[b]/I
962*22dc650dSSadaf Ebrahimi
963*22dc650dSSadaf Ebrahimi/(?=a).*/I
964*22dc650dSSadaf Ebrahimi
965*22dc650dSSadaf Ebrahimi/(?=abc).xyz/Ii
966*22dc650dSSadaf Ebrahimi
967*22dc650dSSadaf Ebrahimi/(?=abc)(?i).xyz/I
968*22dc650dSSadaf Ebrahimi
969*22dc650dSSadaf Ebrahimi/(?=a)(?=b)/I
970*22dc650dSSadaf Ebrahimi
971*22dc650dSSadaf Ebrahimi/(?=.)a/I
972*22dc650dSSadaf Ebrahimi
973*22dc650dSSadaf Ebrahimi/((?=abcda)a)/I
974*22dc650dSSadaf Ebrahimi
975*22dc650dSSadaf Ebrahimi/((?=abcda)ab)/I
976*22dc650dSSadaf Ebrahimi
977*22dc650dSSadaf Ebrahimi/()a/I
978*22dc650dSSadaf Ebrahimi
979*22dc650dSSadaf Ebrahimi/(?:(?=.)|(?<!x))a/I
980*22dc650dSSadaf Ebrahimi
981*22dc650dSSadaf Ebrahimi/(?(1)ab|ac)(.)/I
982*22dc650dSSadaf Ebrahimi
983*22dc650dSSadaf Ebrahimi/(?(1)abz|acz)(.)/I
984*22dc650dSSadaf Ebrahimi
985*22dc650dSSadaf Ebrahimi/(?(1)abz)(.)/I
986*22dc650dSSadaf Ebrahimi
987*22dc650dSSadaf Ebrahimi/(?(1)abz)(1)23/I
988*22dc650dSSadaf Ebrahimi
989*22dc650dSSadaf Ebrahimi/(a)+/I
990*22dc650dSSadaf Ebrahimi
991*22dc650dSSadaf Ebrahimi/(a){2,3}/I
992*22dc650dSSadaf Ebrahimi
993*22dc650dSSadaf Ebrahimi/(a)*/I
994*22dc650dSSadaf Ebrahimi
995*22dc650dSSadaf Ebrahimi/[a]/I
996*22dc650dSSadaf Ebrahimi
997*22dc650dSSadaf Ebrahimi/[ab]/I
998*22dc650dSSadaf Ebrahimi
999*22dc650dSSadaf Ebrahimi/[ab]/I
1000*22dc650dSSadaf Ebrahimi
1001*22dc650dSSadaf Ebrahimi/[^a]/I
1002*22dc650dSSadaf Ebrahimi
1003*22dc650dSSadaf Ebrahimi/\d456/I
1004*22dc650dSSadaf Ebrahimi
1005*22dc650dSSadaf Ebrahimi/\d456/I
1006*22dc650dSSadaf Ebrahimi
1007*22dc650dSSadaf Ebrahimi/a^b/I
1008*22dc650dSSadaf Ebrahimi
1009*22dc650dSSadaf Ebrahimi/^a/Im
1010*22dc650dSSadaf Ebrahimi  abcde
1011*22dc650dSSadaf Ebrahimi  xy\nabc
1012*22dc650dSSadaf Ebrahimi\= Expect no match
1013*22dc650dSSadaf Ebrahimi  xyabc
1014*22dc650dSSadaf Ebrahimi
1015*22dc650dSSadaf Ebrahimi/c|abc/I
1016*22dc650dSSadaf Ebrahimi
1017*22dc650dSSadaf Ebrahimi/(?i)[ab]/I
1018*22dc650dSSadaf Ebrahimi
1019*22dc650dSSadaf Ebrahimi/[ab](?i)cd/I
1020*22dc650dSSadaf Ebrahimi
1021*22dc650dSSadaf Ebrahimi/abc(?C)def/I
1022*22dc650dSSadaf Ebrahimi    abcdef
1023*22dc650dSSadaf Ebrahimi    1234abcdef
1024*22dc650dSSadaf Ebrahimi\= Expect no match
1025*22dc650dSSadaf Ebrahimi    abcxyz
1026*22dc650dSSadaf Ebrahimi    abcxyzf
1027*22dc650dSSadaf Ebrahimi
1028*22dc650dSSadaf Ebrahimi/abc(?C)de(?C1)f/I
1029*22dc650dSSadaf Ebrahimi    123abcdef
1030*22dc650dSSadaf Ebrahimi
1031*22dc650dSSadaf Ebrahimi/(?C1)\dabc(?C2)def/I
1032*22dc650dSSadaf Ebrahimi    1234abcdef
1033*22dc650dSSadaf Ebrahimi\= Expect no match
1034*22dc650dSSadaf Ebrahimi    abcdef
1035*22dc650dSSadaf Ebrahimi
1036*22dc650dSSadaf Ebrahimi/(?C1)\dabc(?C2)def/I
1037*22dc650dSSadaf Ebrahimi    1234abcdef
1038*22dc650dSSadaf Ebrahimi\= Expect no match
1039*22dc650dSSadaf Ebrahimi    abcdef
1040*22dc650dSSadaf Ebrahimi
1041*22dc650dSSadaf Ebrahimi/(?C255)ab/I
1042*22dc650dSSadaf Ebrahimi
1043*22dc650dSSadaf Ebrahimi/(?C256)ab/I
1044*22dc650dSSadaf Ebrahimi
1045*22dc650dSSadaf Ebrahimi/(?Cab)xx/I
1046*22dc650dSSadaf Ebrahimi
1047*22dc650dSSadaf Ebrahimi/(?C12vr)x/I
1048*22dc650dSSadaf Ebrahimi
1049*22dc650dSSadaf Ebrahimi/abc(?C)def/I
1050*22dc650dSSadaf Ebrahimi    \x83\x0\x61bcdef
1051*22dc650dSSadaf Ebrahimi
1052*22dc650dSSadaf Ebrahimi/(abc)(?C)de(?C1)f/I
1053*22dc650dSSadaf Ebrahimi    123abcdef
1054*22dc650dSSadaf Ebrahimi    123abcdef\=callout_capture
1055*22dc650dSSadaf Ebrahimi    123abcdefC-\=callout_none
1056*22dc650dSSadaf Ebrahimi\= Expect no match
1057*22dc650dSSadaf Ebrahimi    123abcdef\=callout_fail=1
1058*22dc650dSSadaf Ebrahimi
1059*22dc650dSSadaf Ebrahimi/(?C0)(abc(?C1))*/I
1060*22dc650dSSadaf Ebrahimi    abcabcabc
1061*22dc650dSSadaf Ebrahimi    abcabc\=callout_fail=1:4
1062*22dc650dSSadaf Ebrahimi    abcabcabc\=callout_fail=1:4
1063*22dc650dSSadaf Ebrahimi
1064*22dc650dSSadaf Ebrahimi/(\d{3}(?C))*/I
1065*22dc650dSSadaf Ebrahimi    123\=callout_capture
1066*22dc650dSSadaf Ebrahimi    123456\=callout_capture
1067*22dc650dSSadaf Ebrahimi    123456789\=callout_capture
1068*22dc650dSSadaf Ebrahimi
1069*22dc650dSSadaf Ebrahimi/((xyz)(?C)p|(?C1)xyzabc)/I
1070*22dc650dSSadaf Ebrahimi    xyzabc\=callout_capture
1071*22dc650dSSadaf Ebrahimi
1072*22dc650dSSadaf Ebrahimi/(X)((xyz)(?C)p|(?C1)xyzabc)/I
1073*22dc650dSSadaf Ebrahimi    Xxyzabc\=callout_capture
1074*22dc650dSSadaf Ebrahimi
1075*22dc650dSSadaf Ebrahimi/(?=(abc))(?C)abcdef/I
1076*22dc650dSSadaf Ebrahimi    abcdef\=callout_capture
1077*22dc650dSSadaf Ebrahimi
1078*22dc650dSSadaf Ebrahimi/(?!(abc)(?C1)d)(?C2)abcxyz/I
1079*22dc650dSSadaf Ebrahimi    abcxyz\=callout_capture
1080*22dc650dSSadaf Ebrahimi
1081*22dc650dSSadaf Ebrahimi/(?<=(abc)(?C))xyz/I
1082*22dc650dSSadaf Ebrahimi   abcxyz\=callout_capture
1083*22dc650dSSadaf Ebrahimi
1084*22dc650dSSadaf Ebrahimi/a(b+)(c*)(?C1)/I
1085*22dc650dSSadaf Ebrahimi\= Expect no match
1086*22dc650dSSadaf Ebrahimi    abbbbbccc\=callout_data=1
1087*22dc650dSSadaf Ebrahimi
1088*22dc650dSSadaf Ebrahimi/a(b+?)(c*?)(?C1)/I
1089*22dc650dSSadaf Ebrahimi\= Expect no match
1090*22dc650dSSadaf Ebrahimi    abbbbbccc\=callout_data=1
1091*22dc650dSSadaf Ebrahimi
1092*22dc650dSSadaf Ebrahimi/(?C)abc/I
1093*22dc650dSSadaf Ebrahimi
1094*22dc650dSSadaf Ebrahimi/(?C)^abc/I
1095*22dc650dSSadaf Ebrahimi
1096*22dc650dSSadaf Ebrahimi/(?C)a|b/I
1097*22dc650dSSadaf Ebrahimi
1098*22dc650dSSadaf Ebrahimi/a|(b)(?C)/I
1099*22dc650dSSadaf Ebrahimi    b
1100*22dc650dSSadaf Ebrahimi
1101*22dc650dSSadaf Ebrahimi/x(ab|(bc|(de|(?R))))/I
1102*22dc650dSSadaf Ebrahimi    xab
1103*22dc650dSSadaf Ebrahimi    xbc
1104*22dc650dSSadaf Ebrahimi    xde
1105*22dc650dSSadaf Ebrahimi    xxab
1106*22dc650dSSadaf Ebrahimi    xxxab
1107*22dc650dSSadaf Ebrahimi\= Expect no match
1108*22dc650dSSadaf Ebrahimi    xyab
1109*22dc650dSSadaf Ebrahimi
1110*22dc650dSSadaf Ebrahimi/^([^()]|\((?1)*\))*$/I
1111*22dc650dSSadaf Ebrahimi    abc
1112*22dc650dSSadaf Ebrahimi    a(b)c
1113*22dc650dSSadaf Ebrahimi    a(b(c))d
1114*22dc650dSSadaf Ebrahimi\= Expect no match)
1115*22dc650dSSadaf Ebrahimi    a(b(c)d
1116*22dc650dSSadaf Ebrahimi
1117*22dc650dSSadaf Ebrahimi/^>abc>([^()]|\((?1)*\))*<xyz<$/I
1118*22dc650dSSadaf Ebrahimi   >abc>123<xyz<
1119*22dc650dSSadaf Ebrahimi   >abc>1(2)3<xyz<
1120*22dc650dSSadaf Ebrahimi   >abc>(1(2)3)<xyz<
1121*22dc650dSSadaf Ebrahimi
1122*22dc650dSSadaf Ebrahimi/(a(?1)b)/IB
1123*22dc650dSSadaf Ebrahimi
1124*22dc650dSSadaf Ebrahimi/(a(?1)+b)/IB
1125*22dc650dSSadaf Ebrahimi
1126*22dc650dSSadaf Ebrahimi/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
1127*22dc650dSSadaf Ebrahimi    12
1128*22dc650dSSadaf Ebrahimi    (((2+2)*-3)-7)
1129*22dc650dSSadaf Ebrahimi    -12
1130*22dc650dSSadaf Ebrahimi\= Expect no match
1131*22dc650dSSadaf Ebrahimi    ((2+2)*-3)-7)
1132*22dc650dSSadaf Ebrahimi
1133*22dc650dSSadaf Ebrahimi/^(x(y|(?1){2})z)/I
1134*22dc650dSSadaf Ebrahimi    xyz
1135*22dc650dSSadaf Ebrahimi    xxyzxyzz
1136*22dc650dSSadaf Ebrahimi\= Expect no match
1137*22dc650dSSadaf Ebrahimi    xxyzz
1138*22dc650dSSadaf Ebrahimi    xxyzxyzxyzz
1139*22dc650dSSadaf Ebrahimi
1140*22dc650dSSadaf Ebrahimi/((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
1141*22dc650dSSadaf Ebrahimi    <>
1142*22dc650dSSadaf Ebrahimi    <abcd>
1143*22dc650dSSadaf Ebrahimi    <abc <123> hij>
1144*22dc650dSSadaf Ebrahimi    <abc <def> hij>
1145*22dc650dSSadaf Ebrahimi    <abc<>def>
1146*22dc650dSSadaf Ebrahimi    <abc<>
1147*22dc650dSSadaf Ebrahimi\= Expect no match
1148*22dc650dSSadaf Ebrahimi    <abc
1149*22dc650dSSadaf Ebrahimi
1150*22dc650dSSadaf Ebrahimi/(?1)/I
1151*22dc650dSSadaf Ebrahimi
1152*22dc650dSSadaf Ebrahimi/((?2)(abc)/I
1153*22dc650dSSadaf Ebrahimi
1154*22dc650dSSadaf Ebrahimi/^(abc)def(?1)/I
1155*22dc650dSSadaf Ebrahimi    abcdefabc
1156*22dc650dSSadaf Ebrahimi
1157*22dc650dSSadaf Ebrahimi/^(a|b|c)=(?1)+/I
1158*22dc650dSSadaf Ebrahimi    a=a
1159*22dc650dSSadaf Ebrahimi    a=b
1160*22dc650dSSadaf Ebrahimi    a=bc
1161*22dc650dSSadaf Ebrahimi
1162*22dc650dSSadaf Ebrahimi/^(a|b|c)=((?1))+/I
1163*22dc650dSSadaf Ebrahimi    a=a
1164*22dc650dSSadaf Ebrahimi    a=b
1165*22dc650dSSadaf Ebrahimi    a=bc
1166*22dc650dSSadaf Ebrahimi
1167*22dc650dSSadaf Ebrahimi/a(?P<name1>b|c)d(?P<longername2>e)/IB
1168*22dc650dSSadaf Ebrahimi    abde
1169*22dc650dSSadaf Ebrahimi    acde
1170*22dc650dSSadaf Ebrahimi
1171*22dc650dSSadaf Ebrahimi/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/IB
1172*22dc650dSSadaf Ebrahimi
1173*22dc650dSSadaf Ebrahimi/(?P<a>a)...(?P=a)bbb(?P>a)d/IB
1174*22dc650dSSadaf Ebrahimi
1175*22dc650dSSadaf Ebrahimi/^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii
1176*22dc650dSSadaf Ebrahimi    1221
1177*22dc650dSSadaf Ebrahimi    Satan, oscillate my metallic sonatas!
1178*22dc650dSSadaf Ebrahimi    A man, a plan, a canal: Panama!
1179*22dc650dSSadaf Ebrahimi    Able was I ere I saw Elba.
1180*22dc650dSSadaf Ebrahimi\= Expect no match
1181*22dc650dSSadaf Ebrahimi    The quick brown fox
1182*22dc650dSSadaf Ebrahimi
1183*22dc650dSSadaf Ebrahimi/((?(R)a|b))\1(?1)?/I
1184*22dc650dSSadaf Ebrahimi  bb
1185*22dc650dSSadaf Ebrahimi  bbaa
1186*22dc650dSSadaf Ebrahimi
1187*22dc650dSSadaf Ebrahimi/(.*)a/Is
1188*22dc650dSSadaf Ebrahimi
1189*22dc650dSSadaf Ebrahimi/(.*)a\1/Is
1190*22dc650dSSadaf Ebrahimi
1191*22dc650dSSadaf Ebrahimi/(.*)a(b)\2/Is
1192*22dc650dSSadaf Ebrahimi
1193*22dc650dSSadaf Ebrahimi/((.*)a|(.*)b)z/Is
1194*22dc650dSSadaf Ebrahimi
1195*22dc650dSSadaf Ebrahimi/((.*)a|(.*)b)z\1/Is
1196*22dc650dSSadaf Ebrahimi
1197*22dc650dSSadaf Ebrahimi/((.*)a|(.*)b)z\2/Is
1198*22dc650dSSadaf Ebrahimi
1199*22dc650dSSadaf Ebrahimi/((.*)a|(.*)b)z\3/Is
1200*22dc650dSSadaf Ebrahimi
1201*22dc650dSSadaf Ebrahimi/((.*)a|^(.*)b)z\3/Is
1202*22dc650dSSadaf Ebrahimi
1203*22dc650dSSadaf Ebrahimi/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
1204*22dc650dSSadaf Ebrahimi
1205*22dc650dSSadaf Ebrahimi/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
1206*22dc650dSSadaf Ebrahimi
1207*22dc650dSSadaf Ebrahimi/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
1208*22dc650dSSadaf Ebrahimi
1209*22dc650dSSadaf Ebrahimi/(a)(bc)/IB,no_auto_capture
1210*22dc650dSSadaf Ebrahimi  abc
1211*22dc650dSSadaf Ebrahimi
1212*22dc650dSSadaf Ebrahimi/(?P<one>a)(bc)/IB,no_auto_capture
1213*22dc650dSSadaf Ebrahimi  abc
1214*22dc650dSSadaf Ebrahimi
1215*22dc650dSSadaf Ebrahimi/(a)(?P<named>bc)/IB,no_auto_capture
1216*22dc650dSSadaf Ebrahimi
1217*22dc650dSSadaf Ebrahimi/(aaa(?C1)bbb|ab)/I
1218*22dc650dSSadaf Ebrahimi   aaabbb
1219*22dc650dSSadaf Ebrahimi   aaabbb\=callout_data=0
1220*22dc650dSSadaf Ebrahimi   aaabbb\=callout_data=1
1221*22dc650dSSadaf Ebrahimi\= Expect no match
1222*22dc650dSSadaf Ebrahimi   aaabbb\=callout_data=-1
1223*22dc650dSSadaf Ebrahimi
1224*22dc650dSSadaf Ebrahimi/ab(?P<one>cd)ef(?P<two>gh)/I
1225*22dc650dSSadaf Ebrahimi    abcdefgh
1226*22dc650dSSadaf Ebrahimi    abcdefgh\=copy=1,get=two
1227*22dc650dSSadaf Ebrahimi    abcdefgh\=copy=one,copy=two
1228*22dc650dSSadaf Ebrahimi    abcdefgh\=copy=three
1229*22dc650dSSadaf Ebrahimi
1230*22dc650dSSadaf Ebrahimi/(?P<Tes>)(?P<Test>)/IB
1231*22dc650dSSadaf Ebrahimi
1232*22dc650dSSadaf Ebrahimi/(?P<Test>)(?P<Tes>)/IB
1233*22dc650dSSadaf Ebrahimi
1234*22dc650dSSadaf Ebrahimi/(?P<Z>zz)(?P<A>aa)/I
1235*22dc650dSSadaf Ebrahimi    zzaa\=copy=Z
1236*22dc650dSSadaf Ebrahimi    zzaa\=copy=A
1237*22dc650dSSadaf Ebrahimi
1238*22dc650dSSadaf Ebrahimi/(?P<x>eks)(?P<x>eccs)/I
1239*22dc650dSSadaf Ebrahimi
1240*22dc650dSSadaf Ebrahimi/(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
1241*22dc650dSSadaf Ebrahimi
1242*22dc650dSSadaf Ebrahimi"\[((?P<elem>\d+)(,(?P>elem))*)\]"I
1243*22dc650dSSadaf Ebrahimi    [10,20,30,5,5,4,4,2,43,23,4234]
1244*22dc650dSSadaf Ebrahimi\= Expect no match
1245*22dc650dSSadaf Ebrahimi    []
1246*22dc650dSSadaf Ebrahimi
1247*22dc650dSSadaf Ebrahimi"\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
1248*22dc650dSSadaf Ebrahimi    [10,20,30,5,5,4,4,2,43,23,4234]
1249*22dc650dSSadaf Ebrahimi    []
1250*22dc650dSSadaf Ebrahimi
1251*22dc650dSSadaf Ebrahimi/(a(b(?2)c))?/IB
1252*22dc650dSSadaf Ebrahimi
1253*22dc650dSSadaf Ebrahimi/(a(b(?2)c))*/IB
1254*22dc650dSSadaf Ebrahimi
1255*22dc650dSSadaf Ebrahimi/(a(b(?2)c)){0,2}/IB
1256*22dc650dSSadaf Ebrahimi
1257*22dc650dSSadaf Ebrahimi/[ab]{1}+/B
1258*22dc650dSSadaf Ebrahimi
1259*22dc650dSSadaf Ebrahimi/()(?1){1}/B
1260*22dc650dSSadaf Ebrahimi
1261*22dc650dSSadaf Ebrahimi/()(?1)/B
1262*22dc650dSSadaf Ebrahimi
1263*22dc650dSSadaf Ebrahimi/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
1264*22dc650dSSadaf Ebrahimi     Baby Bjorn Active Carrier - With free SHIPPING!!
1265*22dc650dSSadaf Ebrahimi
1266*22dc650dSSadaf Ebrahimi/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
1267*22dc650dSSadaf Ebrahimi     Baby Bjorn Active Carrier - With free SHIPPING!!
1268*22dc650dSSadaf Ebrahimi
1269*22dc650dSSadaf Ebrahimi/a*.*b/IB
1270*22dc650dSSadaf Ebrahimi
1271*22dc650dSSadaf Ebrahimi/(a|b)*.?c/IB
1272*22dc650dSSadaf Ebrahimi
1273*22dc650dSSadaf Ebrahimi/abc(?C255)de(?C)f/IB
1274*22dc650dSSadaf Ebrahimi
1275*22dc650dSSadaf Ebrahimi/abcde/IB,auto_callout
1276*22dc650dSSadaf Ebrahimi  abcde
1277*22dc650dSSadaf Ebrahimi\= Expect no match
1278*22dc650dSSadaf Ebrahimi  abcdfe
1279*22dc650dSSadaf Ebrahimi
1280*22dc650dSSadaf Ebrahimi/a*b/IB,auto_callout
1281*22dc650dSSadaf Ebrahimi  ab
1282*22dc650dSSadaf Ebrahimi  aaaab
1283*22dc650dSSadaf Ebrahimi  aaaacb
1284*22dc650dSSadaf Ebrahimi
1285*22dc650dSSadaf Ebrahimi/a*b/IB,auto_callout
1286*22dc650dSSadaf Ebrahimi  ab
1287*22dc650dSSadaf Ebrahimi  aaaab
1288*22dc650dSSadaf Ebrahimi  aaaacb
1289*22dc650dSSadaf Ebrahimi
1290*22dc650dSSadaf Ebrahimi/a+b/IB,auto_callout
1291*22dc650dSSadaf Ebrahimi  ab
1292*22dc650dSSadaf Ebrahimi  aaaab
1293*22dc650dSSadaf Ebrahimi\= Expect no match
1294*22dc650dSSadaf Ebrahimi  aaaacb
1295*22dc650dSSadaf Ebrahimi
1296*22dc650dSSadaf Ebrahimi/(abc|def)x/IB,auto_callout
1297*22dc650dSSadaf Ebrahimi  abcx
1298*22dc650dSSadaf Ebrahimi  defx
1299*22dc650dSSadaf Ebrahimi\= Expect no match
1300*22dc650dSSadaf Ebrahimi  abcdefzx
1301*22dc650dSSadaf Ebrahimi
1302*22dc650dSSadaf Ebrahimi/(abc|def)x/IB,auto_callout
1303*22dc650dSSadaf Ebrahimi  abcx
1304*22dc650dSSadaf Ebrahimi  defx
1305*22dc650dSSadaf Ebrahimi\= Expect no match
1306*22dc650dSSadaf Ebrahimi  abcdefzx
1307*22dc650dSSadaf Ebrahimi
1308*22dc650dSSadaf Ebrahimi/(ab|cd){3,4}/I,auto_callout
1309*22dc650dSSadaf Ebrahimi  ababab
1310*22dc650dSSadaf Ebrahimi  abcdabcd
1311*22dc650dSSadaf Ebrahimi  abcdcdcdcdcd
1312*22dc650dSSadaf Ebrahimi
1313*22dc650dSSadaf Ebrahimi/([ab]{,}c|xy)/IB,auto_callout
1314*22dc650dSSadaf Ebrahimi\= Expect no match
1315*22dc650dSSadaf Ebrahimi    Note: that {,} does NOT introduce a quantifier
1316*22dc650dSSadaf Ebrahimi
1317*22dc650dSSadaf Ebrahimi/([ab]{,}c|xy)/IB,auto_callout
1318*22dc650dSSadaf Ebrahimi\= Expect no match
1319*22dc650dSSadaf Ebrahimi    Note: that {,} does NOT introduce a quantifier
1320*22dc650dSSadaf Ebrahimi
1321*22dc650dSSadaf Ebrahimi/([ab]{1,4}c|xy){4,5}?123/IB,auto_callout
1322*22dc650dSSadaf Ebrahimi    aacaacaacaacaac123
1323*22dc650dSSadaf Ebrahimi
1324*22dc650dSSadaf Ebrahimi/\b.*/I
1325*22dc650dSSadaf Ebrahimi  ab cd\=offset=1
1326*22dc650dSSadaf Ebrahimi
1327*22dc650dSSadaf Ebrahimi/\b.*/Is
1328*22dc650dSSadaf Ebrahimi  ab cd\=startoffset=1
1329*22dc650dSSadaf Ebrahimi
1330*22dc650dSSadaf Ebrahimi/(?!.bcd).*/I
1331*22dc650dSSadaf Ebrahimi  Xbcd12345
1332*22dc650dSSadaf Ebrahimi
1333*22dc650dSSadaf Ebrahimi/abcde/I
1334*22dc650dSSadaf Ebrahimi    ab\=ps
1335*22dc650dSSadaf Ebrahimi    abc\=ps
1336*22dc650dSSadaf Ebrahimi    abcd\=ps
1337*22dc650dSSadaf Ebrahimi    abcde\=ps
1338*22dc650dSSadaf Ebrahimi    the quick brown abc\=ps
1339*22dc650dSSadaf Ebrahimi\= Expect no match\=ps
1340*22dc650dSSadaf Ebrahimi    the quick brown abxyz fox\=ps
1341*22dc650dSSadaf Ebrahimi
1342*22dc650dSSadaf Ebrahimi"^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
1343*22dc650dSSadaf Ebrahimi    13/05/04\=ps
1344*22dc650dSSadaf Ebrahimi    13/5/2004\=ps
1345*22dc650dSSadaf Ebrahimi    02/05/09\=ps
1346*22dc650dSSadaf Ebrahimi    1\=ps
1347*22dc650dSSadaf Ebrahimi    1/2\=ps
1348*22dc650dSSadaf Ebrahimi    1/2/0\=ps
1349*22dc650dSSadaf Ebrahimi    1/2/04\=ps
1350*22dc650dSSadaf Ebrahimi    0\=ps
1351*22dc650dSSadaf Ebrahimi    02/\=ps
1352*22dc650dSSadaf Ebrahimi    02/0\=ps
1353*22dc650dSSadaf Ebrahimi    02/1\=ps
1354*22dc650dSSadaf Ebrahimi\= Expect no match\=ps
1355*22dc650dSSadaf Ebrahimi    \=ps
1356*22dc650dSSadaf Ebrahimi    123\=ps
1357*22dc650dSSadaf Ebrahimi    33/4/04\=ps
1358*22dc650dSSadaf Ebrahimi    3/13/04\=ps
1359*22dc650dSSadaf Ebrahimi    0/1/2003\=ps
1360*22dc650dSSadaf Ebrahimi    0/\=ps
1361*22dc650dSSadaf Ebrahimi    02/0/\=ps
1362*22dc650dSSadaf Ebrahimi    02/13\=ps
1363*22dc650dSSadaf Ebrahimi
1364*22dc650dSSadaf Ebrahimi/0{0,2}ABC/I
1365*22dc650dSSadaf Ebrahimi
1366*22dc650dSSadaf Ebrahimi/\d{3,}ABC/I
1367*22dc650dSSadaf Ebrahimi
1368*22dc650dSSadaf Ebrahimi/\d*ABC/I
1369*22dc650dSSadaf Ebrahimi
1370*22dc650dSSadaf Ebrahimi/[abc]+DE/I
1371*22dc650dSSadaf Ebrahimi
1372*22dc650dSSadaf Ebrahimi/[abc]?123/I
1373*22dc650dSSadaf Ebrahimi    123\=ps
1374*22dc650dSSadaf Ebrahimi    a\=ps
1375*22dc650dSSadaf Ebrahimi    b\=ps
1376*22dc650dSSadaf Ebrahimi    c\=ps
1377*22dc650dSSadaf Ebrahimi    c12\=ps
1378*22dc650dSSadaf Ebrahimi    c123\=ps
1379*22dc650dSSadaf Ebrahimi
1380*22dc650dSSadaf Ebrahimi/^(?:\d){3,5}X/I
1381*22dc650dSSadaf Ebrahimi    1\=ps
1382*22dc650dSSadaf Ebrahimi    123\=ps
1383*22dc650dSSadaf Ebrahimi    123X
1384*22dc650dSSadaf Ebrahimi    1234\=ps
1385*22dc650dSSadaf Ebrahimi    1234X
1386*22dc650dSSadaf Ebrahimi    12345\=ps
1387*22dc650dSSadaf Ebrahimi    12345X
1388*22dc650dSSadaf Ebrahimi\= Expect no match
1389*22dc650dSSadaf Ebrahimi    1X
1390*22dc650dSSadaf Ebrahimi    123456\=ps
1391*22dc650dSSadaf Ebrahimi
1392*22dc650dSSadaf Ebrahimi"<(\w+)/?>(.)*</(\1)>"Igms
1393*22dc650dSSadaf Ebrahimi    <!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>\=jitstack=1024
1394*22dc650dSSadaf Ebrahimi
1395*22dc650dSSadaf Ebrahimi/line\nbreak/I
1396*22dc650dSSadaf Ebrahimi    this is a line\nbreak
1397*22dc650dSSadaf Ebrahimi    line one\nthis is a line\nbreak in the second line
1398*22dc650dSSadaf Ebrahimi
1399*22dc650dSSadaf Ebrahimi/line\nbreak/I,firstline
1400*22dc650dSSadaf Ebrahimi    this is a line\nbreak
1401*22dc650dSSadaf Ebrahimi\= Expect no match
1402*22dc650dSSadaf Ebrahimi    line one\nthis is a line\nbreak in the second line
1403*22dc650dSSadaf Ebrahimi
1404*22dc650dSSadaf Ebrahimi/line\nbreak/Im,firstline
1405*22dc650dSSadaf Ebrahimi    this is a line\nbreak
1406*22dc650dSSadaf Ebrahimi\= Expect no match
1407*22dc650dSSadaf Ebrahimi    line one\nthis is a line\nbreak in the second line
1408*22dc650dSSadaf Ebrahimi
1409*22dc650dSSadaf Ebrahimi/(?i)(?-i)AbCd/I
1410*22dc650dSSadaf Ebrahimi    AbCd
1411*22dc650dSSadaf Ebrahimi\= Expect no match
1412*22dc650dSSadaf Ebrahimi    abcd
1413*22dc650dSSadaf Ebrahimi
1414*22dc650dSSadaf Ebrahimi/a{11111111111111111111}/I
1415*22dc650dSSadaf Ebrahimi
1416*22dc650dSSadaf Ebrahimi/(){64294967295}/I
1417*22dc650dSSadaf Ebrahimi
1418*22dc650dSSadaf Ebrahimi/(){2,4294967295}/I
1419*22dc650dSSadaf Ebrahimi
1420*22dc650dSSadaf Ebrahimi"(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I
1421*22dc650dSSadaf Ebrahimi    abcdefghijklAkB
1422*22dc650dSSadaf Ebrahimi
1423*22dc650dSSadaf Ebrahimi"(?P<n0>a)(?P<n1>b)(?P<n2>c)(?P<n3>d)(?P<n4>e)(?P<n5>f)(?P<n6>g)(?P<n7>h)(?P<n8>i)(?P<n9>j)(?P<n10>k)(?P<n11>l)A\11B"I
1424*22dc650dSSadaf Ebrahimi    abcdefghijklAkB
1425*22dc650dSSadaf Ebrahimi
1426*22dc650dSSadaf Ebrahimi"(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
1427*22dc650dSSadaf Ebrahimi    abcdefghijklAkB
1428*22dc650dSSadaf Ebrahimi
1429*22dc650dSSadaf Ebrahimi"(?P<name0>a)(?P<name1>a)(?P<name2>a)(?P<name3>a)(?P<name4>a)(?P<name5>a)(?P<name6>a)(?P<name7>a)(?P<name8>a)(?P<name9>a)(?P<name10>a)(?P<name11>a)(?P<name12>a)(?P<name13>a)(?P<name14>a)(?P<name15>a)(?P<name16>a)(?P<name17>a)(?P<name18>a)(?P<name19>a)(?P<name20>a)(?P<name21>a)(?P<name22>a)(?P<name23>a)(?P<name24>a)(?P<name25>a)(?P<name26>a)(?P<name27>a)(?P<name28>a)(?P<name29>a)(?P<name30>a)(?P<name31>a)(?P<name32>a)(?P<name33>a)(?P<name34>a)(?P<name35>a)(?P<name36>a)(?P<name37>a)(?P<name38>a)(?P<name39>a)(?P<name40>a)(?P<name41>a)(?P<name42>a)(?P<name43>a)(?P<name44>a)(?P<name45>a)(?P<name46>a)(?P<name47>a)(?P<name48>a)(?P<name49>a)(?P<name50>a)(?P<name51>a)(?P<name52>a)(?P<name53>a)(?P<name54>a)(?P<name55>a)(?P<name56>a)(?P<name57>a)(?P<name58>a)(?P<name59>a)(?P<name60>a)(?P<name61>a)(?P<name62>a)(?P<name63>a)(?P<name64>a)(?P<name65>a)(?P<name66>a)(?P<name67>a)(?P<name68>a)(?P<name69>a)(?P<name70>a)(?P<name71>a)(?P<name72>a)(?P<name73>a)(?P<name74>a)(?P<name75>a)(?P<name76>a)(?P<name77>a)(?P<name78>a)(?P<name79>a)(?P<name80>a)(?P<name81>a)(?P<name82>a)(?P<name83>a)(?P<name84>a)(?P<name85>a)(?P<name86>a)(?P<name87>a)(?P<name88>a)(?P<name89>a)(?P<name90>a)(?P<name91>a)(?P<name92>a)(?P<name93>a)(?P<name94>a)(?P<name95>a)(?P<name96>a)(?P<name97>a)(?P<name98>a)(?P<name99>a)(?P<name100>a)"I
1430*22dc650dSSadaf Ebrahimi    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1431*22dc650dSSadaf Ebrahimi
1432*22dc650dSSadaf Ebrahimi"(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)"I
1433*22dc650dSSadaf Ebrahimi    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1434*22dc650dSSadaf Ebrahimi
1435*22dc650dSSadaf Ebrahimi/[^()]*(?:\((?R)\)[^()]*)*/I
1436*22dc650dSSadaf Ebrahimi    (this(and)that
1437*22dc650dSSadaf Ebrahimi    (this(and)that)
1438*22dc650dSSadaf Ebrahimi    (this(and)that)stuff
1439*22dc650dSSadaf Ebrahimi
1440*22dc650dSSadaf Ebrahimi/[^()]*(?:\((?>(?R))\)[^()]*)*/I
1441*22dc650dSSadaf Ebrahimi    (this(and)that
1442*22dc650dSSadaf Ebrahimi    (this(and)that)
1443*22dc650dSSadaf Ebrahimi
1444*22dc650dSSadaf Ebrahimi/[^()]*(?:\((?R)\))*[^()]*/I
1445*22dc650dSSadaf Ebrahimi    (this(and)that
1446*22dc650dSSadaf Ebrahimi    (this(and)that)
1447*22dc650dSSadaf Ebrahimi
1448*22dc650dSSadaf Ebrahimi/(?:\((?R)\))*[^()]*/I
1449*22dc650dSSadaf Ebrahimi    (this(and)that
1450*22dc650dSSadaf Ebrahimi    (this(and)that)
1451*22dc650dSSadaf Ebrahimi    ((this))
1452*22dc650dSSadaf Ebrahimi
1453*22dc650dSSadaf Ebrahimi/(?:\((?R)\))|[^()]*/I
1454*22dc650dSSadaf Ebrahimi    (this(and)that
1455*22dc650dSSadaf Ebrahimi    (this(and)that)
1456*22dc650dSSadaf Ebrahimi    (this)
1457*22dc650dSSadaf Ebrahimi    ((this))
1458*22dc650dSSadaf Ebrahimi
1459*22dc650dSSadaf Ebrahimi/\x{0000ff}/I
1460*22dc650dSSadaf Ebrahimi
1461*22dc650dSSadaf Ebrahimi/^((?P<A>a1)|(?P<A>a2)b)/I
1462*22dc650dSSadaf Ebrahimi
1463*22dc650dSSadaf Ebrahimi/^((?P<A>a1)|(?P<A>a2)b)/I,dupnames
1464*22dc650dSSadaf Ebrahimi    a1b\=copy=A
1465*22dc650dSSadaf Ebrahimi    a2b\=copy=A
1466*22dc650dSSadaf Ebrahimi    a1b\=copy=Z,copy=A
1467*22dc650dSSadaf Ebrahimi
1468*22dc650dSSadaf Ebrahimi/(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/I,dupnames
1469*22dc650dSSadaf Ebrahimi
1470*22dc650dSSadaf Ebrahimi/^(?P<A>a)(?P<A>b)/I,dupnames
1471*22dc650dSSadaf Ebrahimi    ab\=copy=A
1472*22dc650dSSadaf Ebrahimi
1473*22dc650dSSadaf Ebrahimi/^(?P<A>a)(?P<A>b)|cd/I,dupnames
1474*22dc650dSSadaf Ebrahimi    ab\=copy=A
1475*22dc650dSSadaf Ebrahimi    cd\=copy=A
1476*22dc650dSSadaf Ebrahimi
1477*22dc650dSSadaf Ebrahimi/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/I,dupnames
1478*22dc650dSSadaf Ebrahimi    cdefgh\=copy=A
1479*22dc650dSSadaf Ebrahimi
1480*22dc650dSSadaf Ebrahimi/^((?P<A>a1)|(?P<A>a2)b)/I,dupnames
1481*22dc650dSSadaf Ebrahimi    a1b\=get=A
1482*22dc650dSSadaf Ebrahimi    a2b\=get=A
1483*22dc650dSSadaf Ebrahimi    a1b\=get=Z,get=A
1484*22dc650dSSadaf Ebrahimi
1485*22dc650dSSadaf Ebrahimi/^(?P<A>a)(?P<A>b)/I,dupnames
1486*22dc650dSSadaf Ebrahimi    ab\=get=A
1487*22dc650dSSadaf Ebrahimi
1488*22dc650dSSadaf Ebrahimi/^(?P<A>a)(?P<A>b)|cd/I,dupnames
1489*22dc650dSSadaf Ebrahimi    ab\=get=A
1490*22dc650dSSadaf Ebrahimi    cd\=get=A
1491*22dc650dSSadaf Ebrahimi
1492*22dc650dSSadaf Ebrahimi/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/I,dupnames
1493*22dc650dSSadaf Ebrahimi    cdefgh\=get=A
1494*22dc650dSSadaf Ebrahimi
1495*22dc650dSSadaf Ebrahimi/(?J)^((?P<A>a1)|(?P<A>a2)b)/I
1496*22dc650dSSadaf Ebrahimi    a1b\=copy=A
1497*22dc650dSSadaf Ebrahimi    a2b\=copy=A
1498*22dc650dSSadaf Ebrahimi
1499*22dc650dSSadaf Ebrahimi/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
1500*22dc650dSSadaf Ebrahimi
1501*22dc650dSSadaf Ebrahimi# In this next test, J is not set at the outer level; consequently it isn't set
1502*22dc650dSSadaf Ebrahimi# in the pattern's options; consequently pcre2_substring_get_byname() produces
1503*22dc650dSSadaf Ebrahimi# a random value.
1504*22dc650dSSadaf Ebrahimi
1505*22dc650dSSadaf Ebrahimi/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
1506*22dc650dSSadaf Ebrahimi    a bc d\=copy=A,copy=B,copy=C
1507*22dc650dSSadaf Ebrahimi
1508*22dc650dSSadaf Ebrahimi/^(?P<A>a)?(?(A)a|b)/I
1509*22dc650dSSadaf Ebrahimi    aabc
1510*22dc650dSSadaf Ebrahimi    bc
1511*22dc650dSSadaf Ebrahimi\= Expect no match
1512*22dc650dSSadaf Ebrahimi    abc
1513*22dc650dSSadaf Ebrahimi
1514*22dc650dSSadaf Ebrahimi/(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
1515*22dc650dSSadaf Ebrahimi    bXaX
1516*22dc650dSSadaf Ebrahimi
1517*22dc650dSSadaf Ebrahimi/(?:(?(2y)a|b)(X))+/I
1518*22dc650dSSadaf Ebrahimi
1519*22dc650dSSadaf Ebrahimi/(?:(?(ZA)a|b)(?P<ZZ>X))+/I
1520*22dc650dSSadaf Ebrahimi
1521*22dc650dSSadaf Ebrahimi/(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
1522*22dc650dSSadaf Ebrahimi    bbXaaX
1523*22dc650dSSadaf Ebrahimi
1524*22dc650dSSadaf Ebrahimi/(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
1525*22dc650dSSadaf Ebrahimi    (b)\\Xa\\X
1526*22dc650dSSadaf Ebrahimi
1527*22dc650dSSadaf Ebrahimi/(?P<ABC/I
1528*22dc650dSSadaf Ebrahimi
1529*22dc650dSSadaf Ebrahimi/(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
1530*22dc650dSSadaf Ebrahimi    bXXaYYaY
1531*22dc650dSSadaf Ebrahimi    bXYaXXaX
1532*22dc650dSSadaf Ebrahimi
1533*22dc650dSSadaf Ebrahimi/()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
1534*22dc650dSSadaf Ebrahimi    bXXaYYaY
1535*22dc650dSSadaf Ebrahimi
1536*22dc650dSSadaf Ebrahimi/\s*,\s*/I
1537*22dc650dSSadaf Ebrahimi    \x0b,\x0b
1538*22dc650dSSadaf Ebrahimi    \x0c,\x0d
1539*22dc650dSSadaf Ebrahimi
1540*22dc650dSSadaf Ebrahimi/^abc/Im,newline=lf
1541*22dc650dSSadaf Ebrahimi    xyz\nabc
1542*22dc650dSSadaf Ebrahimi    xyz\r\nabc
1543*22dc650dSSadaf Ebrahimi\= Expect no match
1544*22dc650dSSadaf Ebrahimi    xyz\rabc
1545*22dc650dSSadaf Ebrahimi    xyzabc\r
1546*22dc650dSSadaf Ebrahimi    xyzabc\rpqr
1547*22dc650dSSadaf Ebrahimi    xyzabc\r\n
1548*22dc650dSSadaf Ebrahimi    xyzabc\r\npqr
1549*22dc650dSSadaf Ebrahimi
1550*22dc650dSSadaf Ebrahimi/^abc/Im,newline=crlf
1551*22dc650dSSadaf Ebrahimi    xyz\r\nabclf>
1552*22dc650dSSadaf Ebrahimi\= Expect no match
1553*22dc650dSSadaf Ebrahimi    xyz\nabclf
1554*22dc650dSSadaf Ebrahimi    xyz\rabclf
1555*22dc650dSSadaf Ebrahimi
1556*22dc650dSSadaf Ebrahimi/^abc/Im,newline=cr
1557*22dc650dSSadaf Ebrahimi    xyz\rabc
1558*22dc650dSSadaf Ebrahimi\= Expect no match
1559*22dc650dSSadaf Ebrahimi    xyz\nabc
1560*22dc650dSSadaf Ebrahimi    xyz\r\nabc
1561*22dc650dSSadaf Ebrahimi
1562*22dc650dSSadaf Ebrahimi/^abc/Im,newline=bad
1563*22dc650dSSadaf Ebrahimi
1564*22dc650dSSadaf Ebrahimi/.*/I,newline=lf
1565*22dc650dSSadaf Ebrahimi    abc\ndef
1566*22dc650dSSadaf Ebrahimi    abc\rdef
1567*22dc650dSSadaf Ebrahimi    abc\r\ndef
1568*22dc650dSSadaf Ebrahimi
1569*22dc650dSSadaf Ebrahimi/.*/I,newline=cr
1570*22dc650dSSadaf Ebrahimi    abc\ndef
1571*22dc650dSSadaf Ebrahimi    abc\rdef
1572*22dc650dSSadaf Ebrahimi    abc\r\ndef
1573*22dc650dSSadaf Ebrahimi
1574*22dc650dSSadaf Ebrahimi/.*/I,newline=crlf
1575*22dc650dSSadaf Ebrahimi    abc\ndef
1576*22dc650dSSadaf Ebrahimi    abc\rdef
1577*22dc650dSSadaf Ebrahimi    abc\r\ndef
1578*22dc650dSSadaf Ebrahimi
1579*22dc650dSSadaf Ebrahimi/\w+(.)(.)?def/Is
1580*22dc650dSSadaf Ebrahimi    abc\ndef
1581*22dc650dSSadaf Ebrahimi    abc\rdef
1582*22dc650dSSadaf Ebrahimi    abc\r\ndef
1583*22dc650dSSadaf Ebrahimi
1584*22dc650dSSadaf Ebrahimi/(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
1585*22dc650dSSadaf Ebrahimi
1586*22dc650dSSadaf Ebrahimi/()()()()()()()()()()()()()()()()()()()()
1587*22dc650dSSadaf Ebrahimi ()()()()()()()()()()()()()()()()()()()()
1588*22dc650dSSadaf Ebrahimi ()()()()()()()()()()()()()()()()()()()()
1589*22dc650dSSadaf Ebrahimi ()()()()()()()()()()()()()()()()()()()()
1590*22dc650dSSadaf Ebrahimi ()()()()()()()()()()()()()()()()()()()()
1591*22dc650dSSadaf Ebrahimi (.(.))/Ix
1592*22dc650dSSadaf Ebrahimi    XY\=ovector=133
1593*22dc650dSSadaf Ebrahimi
1594*22dc650dSSadaf Ebrahimi/(a*b|(?i:c*(?-i)d))/I
1595*22dc650dSSadaf Ebrahimi
1596*22dc650dSSadaf Ebrahimi/()[ab]xyz/I
1597*22dc650dSSadaf Ebrahimi
1598*22dc650dSSadaf Ebrahimi/(|)[ab]xyz/I
1599*22dc650dSSadaf Ebrahimi
1600*22dc650dSSadaf Ebrahimi/(|c)[ab]xyz/I
1601*22dc650dSSadaf Ebrahimi
1602*22dc650dSSadaf Ebrahimi/(|c?)[ab]xyz/I
1603*22dc650dSSadaf Ebrahimi
1604*22dc650dSSadaf Ebrahimi/(d?|c?)[ab]xyz/I
1605*22dc650dSSadaf Ebrahimi
1606*22dc650dSSadaf Ebrahimi/(d?|c)[ab]xyz/I
1607*22dc650dSSadaf Ebrahimi
1608*22dc650dSSadaf Ebrahimi/^a*b\d/IB
1609*22dc650dSSadaf Ebrahimi
1610*22dc650dSSadaf Ebrahimi/^a*+b\d/IB
1611*22dc650dSSadaf Ebrahimi
1612*22dc650dSSadaf Ebrahimi/^a*?b\d/IB
1613*22dc650dSSadaf Ebrahimi
1614*22dc650dSSadaf Ebrahimi/^a+A\d/IB
1615*22dc650dSSadaf Ebrahimi    aaaA5
1616*22dc650dSSadaf Ebrahimi\= Expect no match
1617*22dc650dSSadaf Ebrahimi    aaaa5
1618*22dc650dSSadaf Ebrahimi
1619*22dc650dSSadaf Ebrahimi/^a*A\d/IBi
1620*22dc650dSSadaf Ebrahimi    aaaA5
1621*22dc650dSSadaf Ebrahimi    aaaa5
1622*22dc650dSSadaf Ebrahimi    a5
1623*22dc650dSSadaf Ebrahimi
1624*22dc650dSSadaf Ebrahimi/(a*|b*)[cd]/I
1625*22dc650dSSadaf Ebrahimi
1626*22dc650dSSadaf Ebrahimi/(a+|b*)[cd]/I
1627*22dc650dSSadaf Ebrahimi
1628*22dc650dSSadaf Ebrahimi/(a*|b+)[cd]/I
1629*22dc650dSSadaf Ebrahimi
1630*22dc650dSSadaf Ebrahimi/(a+|b+)[cd]/I
1631*22dc650dSSadaf Ebrahimi
1632*22dc650dSSadaf Ebrahimi/((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
1633*22dc650dSSadaf Ebrahimi ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
1634*22dc650dSSadaf Ebrahimi (((
1635*22dc650dSSadaf Ebrahimi a
1636*22dc650dSSadaf Ebrahimi ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
1637*22dc650dSSadaf Ebrahimi ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
1638*22dc650dSSadaf Ebrahimi )))
1639*22dc650dSSadaf Ebrahimi/Ix
1640*22dc650dSSadaf Ebrahimi  large nest
1641*22dc650dSSadaf Ebrahimi
1642*22dc650dSSadaf Ebrahimi/a*\d/B
1643*22dc650dSSadaf Ebrahimi
1644*22dc650dSSadaf Ebrahimi/a*\D/B
1645*22dc650dSSadaf Ebrahimi
1646*22dc650dSSadaf Ebrahimi/0*\d/B
1647*22dc650dSSadaf Ebrahimi
1648*22dc650dSSadaf Ebrahimi/0*\D/B
1649*22dc650dSSadaf Ebrahimi
1650*22dc650dSSadaf Ebrahimi/a*\s/B
1651*22dc650dSSadaf Ebrahimi
1652*22dc650dSSadaf Ebrahimi/a*\S/B
1653*22dc650dSSadaf Ebrahimi
1654*22dc650dSSadaf Ebrahimi/ *\s/B
1655*22dc650dSSadaf Ebrahimi
1656*22dc650dSSadaf Ebrahimi/ *\S/B
1657*22dc650dSSadaf Ebrahimi
1658*22dc650dSSadaf Ebrahimi/a*\w/B
1659*22dc650dSSadaf Ebrahimi
1660*22dc650dSSadaf Ebrahimi/a*\W/B
1661*22dc650dSSadaf Ebrahimi
1662*22dc650dSSadaf Ebrahimi/=*\w/B
1663*22dc650dSSadaf Ebrahimi
1664*22dc650dSSadaf Ebrahimi/=*\W/B
1665*22dc650dSSadaf Ebrahimi
1666*22dc650dSSadaf Ebrahimi/\d*a/B
1667*22dc650dSSadaf Ebrahimi
1668*22dc650dSSadaf Ebrahimi/\d*2/B
1669*22dc650dSSadaf Ebrahimi
1670*22dc650dSSadaf Ebrahimi/\d*\d/B
1671*22dc650dSSadaf Ebrahimi
1672*22dc650dSSadaf Ebrahimi/\d*\D/B
1673*22dc650dSSadaf Ebrahimi
1674*22dc650dSSadaf Ebrahimi/\d*\s/B
1675*22dc650dSSadaf Ebrahimi
1676*22dc650dSSadaf Ebrahimi/\d*\S/B
1677*22dc650dSSadaf Ebrahimi
1678*22dc650dSSadaf Ebrahimi/\d*\w/B
1679*22dc650dSSadaf Ebrahimi
1680*22dc650dSSadaf Ebrahimi/\d*\W/B
1681*22dc650dSSadaf Ebrahimi
1682*22dc650dSSadaf Ebrahimi/\D*a/B
1683*22dc650dSSadaf Ebrahimi
1684*22dc650dSSadaf Ebrahimi/\D*2/B
1685*22dc650dSSadaf Ebrahimi
1686*22dc650dSSadaf Ebrahimi/\D*\d/B
1687*22dc650dSSadaf Ebrahimi
1688*22dc650dSSadaf Ebrahimi/\D*\D/B
1689*22dc650dSSadaf Ebrahimi
1690*22dc650dSSadaf Ebrahimi/\D*\s/B
1691*22dc650dSSadaf Ebrahimi
1692*22dc650dSSadaf Ebrahimi/\D*\S/B
1693*22dc650dSSadaf Ebrahimi
1694*22dc650dSSadaf Ebrahimi/\D*\w/B
1695*22dc650dSSadaf Ebrahimi
1696*22dc650dSSadaf Ebrahimi/\D*\W/B
1697*22dc650dSSadaf Ebrahimi
1698*22dc650dSSadaf Ebrahimi/\s*a/B
1699*22dc650dSSadaf Ebrahimi
1700*22dc650dSSadaf Ebrahimi/\s*2/B
1701*22dc650dSSadaf Ebrahimi
1702*22dc650dSSadaf Ebrahimi/\s*\d/B
1703*22dc650dSSadaf Ebrahimi
1704*22dc650dSSadaf Ebrahimi/\s*\D/B
1705*22dc650dSSadaf Ebrahimi
1706*22dc650dSSadaf Ebrahimi/\s*\s/B
1707*22dc650dSSadaf Ebrahimi
1708*22dc650dSSadaf Ebrahimi/\s*\S/B
1709*22dc650dSSadaf Ebrahimi
1710*22dc650dSSadaf Ebrahimi/\s*\w/B
1711*22dc650dSSadaf Ebrahimi
1712*22dc650dSSadaf Ebrahimi/\s*\W/B
1713*22dc650dSSadaf Ebrahimi
1714*22dc650dSSadaf Ebrahimi/\S*a/B
1715*22dc650dSSadaf Ebrahimi
1716*22dc650dSSadaf Ebrahimi/\S*2/B
1717*22dc650dSSadaf Ebrahimi
1718*22dc650dSSadaf Ebrahimi/\S*\d/B
1719*22dc650dSSadaf Ebrahimi
1720*22dc650dSSadaf Ebrahimi/\S*\D/B
1721*22dc650dSSadaf Ebrahimi
1722*22dc650dSSadaf Ebrahimi/\S*\s/B
1723*22dc650dSSadaf Ebrahimi
1724*22dc650dSSadaf Ebrahimi/\S*\S/B
1725*22dc650dSSadaf Ebrahimi
1726*22dc650dSSadaf Ebrahimi/\S*\w/B
1727*22dc650dSSadaf Ebrahimi
1728*22dc650dSSadaf Ebrahimi/\S*\W/B
1729*22dc650dSSadaf Ebrahimi
1730*22dc650dSSadaf Ebrahimi/\w*a/B
1731*22dc650dSSadaf Ebrahimi
1732*22dc650dSSadaf Ebrahimi/\w*2/B
1733*22dc650dSSadaf Ebrahimi
1734*22dc650dSSadaf Ebrahimi/\w*\d/B
1735*22dc650dSSadaf Ebrahimi
1736*22dc650dSSadaf Ebrahimi/\w*\D/B
1737*22dc650dSSadaf Ebrahimi
1738*22dc650dSSadaf Ebrahimi/\w*\s/B
1739*22dc650dSSadaf Ebrahimi
1740*22dc650dSSadaf Ebrahimi/\w*\S/B
1741*22dc650dSSadaf Ebrahimi
1742*22dc650dSSadaf Ebrahimi/\w*\w/B
1743*22dc650dSSadaf Ebrahimi
1744*22dc650dSSadaf Ebrahimi/\w*\W/B
1745*22dc650dSSadaf Ebrahimi
1746*22dc650dSSadaf Ebrahimi/\W*a/B
1747*22dc650dSSadaf Ebrahimi
1748*22dc650dSSadaf Ebrahimi/\W*2/B
1749*22dc650dSSadaf Ebrahimi
1750*22dc650dSSadaf Ebrahimi/\W*\d/B
1751*22dc650dSSadaf Ebrahimi
1752*22dc650dSSadaf Ebrahimi/\W*\D/B
1753*22dc650dSSadaf Ebrahimi
1754*22dc650dSSadaf Ebrahimi/\W*\s/B
1755*22dc650dSSadaf Ebrahimi
1756*22dc650dSSadaf Ebrahimi/\W*\S/B
1757*22dc650dSSadaf Ebrahimi
1758*22dc650dSSadaf Ebrahimi/\W*\w/B
1759*22dc650dSSadaf Ebrahimi
1760*22dc650dSSadaf Ebrahimi/\W*\W/B
1761*22dc650dSSadaf Ebrahimi
1762*22dc650dSSadaf Ebrahimi/[^a]+a/B
1763*22dc650dSSadaf Ebrahimi
1764*22dc650dSSadaf Ebrahimi/[^a]+a/Bi
1765*22dc650dSSadaf Ebrahimi
1766*22dc650dSSadaf Ebrahimi/[^a]+A/Bi
1767*22dc650dSSadaf Ebrahimi
1768*22dc650dSSadaf Ebrahimi/[^a]+b/B
1769*22dc650dSSadaf Ebrahimi
1770*22dc650dSSadaf Ebrahimi/[^a]+\d/B
1771*22dc650dSSadaf Ebrahimi
1772*22dc650dSSadaf Ebrahimi/a*[^a]/B
1773*22dc650dSSadaf Ebrahimi
1774*22dc650dSSadaf Ebrahimi/(?P<abc>x)(?P<xyz>y)/I
1775*22dc650dSSadaf Ebrahimi    xy\=copy=abc,copy=xyz
1776*22dc650dSSadaf Ebrahimi
1777*22dc650dSSadaf Ebrahimi/(?<abc>x)(?'xyz'y)/I
1778*22dc650dSSadaf Ebrahimi    xy\=copy=abc,copy=xyz
1779*22dc650dSSadaf Ebrahimi
1780*22dc650dSSadaf Ebrahimi/(?<abc'x)(?'xyz'y)/I
1781*22dc650dSSadaf Ebrahimi
1782*22dc650dSSadaf Ebrahimi/(?<abc>x)(?'xyz>y)/I
1783*22dc650dSSadaf Ebrahimi
1784*22dc650dSSadaf Ebrahimi/(?P'abc'x)(?P<xyz>y)/I
1785*22dc650dSSadaf Ebrahimi
1786*22dc650dSSadaf Ebrahimi/^(?:(?(ZZ)a|b)(?<ZZ>X))+/
1787*22dc650dSSadaf Ebrahimi    bXaX
1788*22dc650dSSadaf Ebrahimi    bXbX
1789*22dc650dSSadaf Ebrahimi\= Expect no match
1790*22dc650dSSadaf Ebrahimi    aXaX
1791*22dc650dSSadaf Ebrahimi    aXbX
1792*22dc650dSSadaf Ebrahimi
1793*22dc650dSSadaf Ebrahimi/^(?P>abc)(?<abcd>xxx)/
1794*22dc650dSSadaf Ebrahimi
1795*22dc650dSSadaf Ebrahimi/^(?P>abc)(?<abc>x|y)/
1796*22dc650dSSadaf Ebrahimi    xx
1797*22dc650dSSadaf Ebrahimi    xy
1798*22dc650dSSadaf Ebrahimi    yy
1799*22dc650dSSadaf Ebrahimi    yx
1800*22dc650dSSadaf Ebrahimi
1801*22dc650dSSadaf Ebrahimi/^(?P>abc)(?P<abc>x|y)/
1802*22dc650dSSadaf Ebrahimi    xx
1803*22dc650dSSadaf Ebrahimi    xy
1804*22dc650dSSadaf Ebrahimi    yy
1805*22dc650dSSadaf Ebrahimi    yx
1806*22dc650dSSadaf Ebrahimi
1807*22dc650dSSadaf Ebrahimi/^((?(abc)a|b)(?<abc>x|y))+/
1808*22dc650dSSadaf Ebrahimi    bxay
1809*22dc650dSSadaf Ebrahimi    bxby
1810*22dc650dSSadaf Ebrahimi\= Expect no match
1811*22dc650dSSadaf Ebrahimi    axby
1812*22dc650dSSadaf Ebrahimi
1813*22dc650dSSadaf Ebrahimi/^(((?P=abc)|X)(?<abc>x|y))+/
1814*22dc650dSSadaf Ebrahimi    XxXxxx
1815*22dc650dSSadaf Ebrahimi    XxXyyx
1816*22dc650dSSadaf Ebrahimi    XxXyxx
1817*22dc650dSSadaf Ebrahimi\= Expect no match
1818*22dc650dSSadaf Ebrahimi    x
1819*22dc650dSSadaf Ebrahimi
1820*22dc650dSSadaf Ebrahimi/^(?1)(abc)/
1821*22dc650dSSadaf Ebrahimi    abcabc
1822*22dc650dSSadaf Ebrahimi
1823*22dc650dSSadaf Ebrahimi/^(?:(?:\1|X)(a|b))+/
1824*22dc650dSSadaf Ebrahimi    Xaaa
1825*22dc650dSSadaf Ebrahimi    Xaba
1826*22dc650dSSadaf Ebrahimi
1827*22dc650dSSadaf Ebrahimi/^[\E\Qa\E-\Qz\E]+/B
1828*22dc650dSSadaf Ebrahimi
1829*22dc650dSSadaf Ebrahimi/^[a\Q]bc\E]/B
1830*22dc650dSSadaf Ebrahimi
1831*22dc650dSSadaf Ebrahimi/^[a-\Q\E]/B
1832*22dc650dSSadaf Ebrahimi
1833*22dc650dSSadaf Ebrahimi/^(?P>abc)[()](?<abc>)/B
1834*22dc650dSSadaf Ebrahimi
1835*22dc650dSSadaf Ebrahimi/^((?(abc)y)[()](?P<abc>x))+/B
1836*22dc650dSSadaf Ebrahimi    (xy)x
1837*22dc650dSSadaf Ebrahimi
1838*22dc650dSSadaf Ebrahimi/^(?P>abc)\Q()\E(?<abc>)/B
1839*22dc650dSSadaf Ebrahimi
1840*22dc650dSSadaf Ebrahimi/^(?P>abc)[a\Q(]\E(](?<abc>)/B
1841*22dc650dSSadaf Ebrahimi
1842*22dc650dSSadaf Ebrahimi/^(?P>abc) # this is (a comment)
1843*22dc650dSSadaf Ebrahimi  (?<abc>)/Bx
1844*22dc650dSSadaf Ebrahimi
1845*22dc650dSSadaf Ebrahimi/^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
1846*22dc650dSSadaf Ebrahimi    1221
1847*22dc650dSSadaf Ebrahimi    Satan, oscillate my metallic sonatas!
1848*22dc650dSSadaf Ebrahimi    A man, a plan, a canal: Panama!
1849*22dc650dSSadaf Ebrahimi    Able was I ere I saw Elba.
1850*22dc650dSSadaf Ebrahimi\= Expect no match
1851*22dc650dSSadaf Ebrahimi    The quick brown fox
1852*22dc650dSSadaf Ebrahimi
1853*22dc650dSSadaf Ebrahimi/(?=(\w+))\1:/I
1854*22dc650dSSadaf Ebrahimi    abcd:
1855*22dc650dSSadaf Ebrahimi
1856*22dc650dSSadaf Ebrahimi/(?=(?'abc'\w+))\k<abc>:/I
1857*22dc650dSSadaf Ebrahimi    abcd:
1858*22dc650dSSadaf Ebrahimi
1859*22dc650dSSadaf Ebrahimi/(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/dupnames
1860*22dc650dSSadaf Ebrahimi    adaa
1861*22dc650dSSadaf Ebrahimi\= Expect no match
1862*22dc650dSSadaf Ebrahimi    addd
1863*22dc650dSSadaf Ebrahimi    adbb
1864*22dc650dSSadaf Ebrahimi
1865*22dc650dSSadaf Ebrahimi/(?'abc'a|b)(?<abc>d|e)(?&abc){2}/dupnames
1866*22dc650dSSadaf Ebrahimi    bdaa
1867*22dc650dSSadaf Ebrahimi    bdab
1868*22dc650dSSadaf Ebrahimi\= Expect no match
1869*22dc650dSSadaf Ebrahimi    bddd
1870*22dc650dSSadaf Ebrahimi
1871*22dc650dSSadaf Ebrahimi/(?(<bc))/
1872*22dc650dSSadaf Ebrahimi
1873*22dc650dSSadaf Ebrahimi/(?(''))/
1874*22dc650dSSadaf Ebrahimi
1875*22dc650dSSadaf Ebrahimi/(?('R')stuff)/
1876*22dc650dSSadaf Ebrahimi
1877*22dc650dSSadaf Ebrahimi/((abc (?(R) (?(R1)1) (?(R2)2) X  |  (?1)  (?2)   (?R) ))) /x
1878*22dc650dSSadaf Ebrahimi    abcabc1Xabc2XabcXabcabc
1879*22dc650dSSadaf Ebrahimi
1880*22dc650dSSadaf Ebrahimi/(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
1881*22dc650dSSadaf Ebrahimi    abcabc1Xabc2XabcXabcabc
1882*22dc650dSSadaf Ebrahimi
1883*22dc650dSSadaf Ebrahimi/(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
1884*22dc650dSSadaf Ebrahimi
1885*22dc650dSSadaf Ebrahimi/^(?(DEFINE) abc | xyz ) /x
1886*22dc650dSSadaf Ebrahimi
1887*22dc650dSSadaf Ebrahimi/(?(DEFINE) abc) xyz/Ix
1888*22dc650dSSadaf Ebrahimi
1889*22dc650dSSadaf Ebrahimi/(a|)*\d/
1890*22dc650dSSadaf Ebrahimi  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4\=ovector=0
1891*22dc650dSSadaf Ebrahimi\= Expect no match
1892*22dc650dSSadaf Ebrahimi  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\=ovector=0
1893*22dc650dSSadaf Ebrahimi
1894*22dc650dSSadaf Ebrahimi/^a.b/newline=lf
1895*22dc650dSSadaf Ebrahimi    a\rb
1896*22dc650dSSadaf Ebrahimi\= Expect no match
1897*22dc650dSSadaf Ebrahimi    a\nb
1898*22dc650dSSadaf Ebrahimi
1899*22dc650dSSadaf Ebrahimi/^a.b/newline=cr
1900*22dc650dSSadaf Ebrahimi    a\nb
1901*22dc650dSSadaf Ebrahimi\= Expect no match
1902*22dc650dSSadaf Ebrahimi    a\rb
1903*22dc650dSSadaf Ebrahimi
1904*22dc650dSSadaf Ebrahimi/^a.b/newline=anycrlf
1905*22dc650dSSadaf Ebrahimi    a\x85b
1906*22dc650dSSadaf Ebrahimi\= Expect no match
1907*22dc650dSSadaf Ebrahimi    a\rb
1908*22dc650dSSadaf Ebrahimi
1909*22dc650dSSadaf Ebrahimi/^a.b/newline=any
1910*22dc650dSSadaf Ebrahimi\= Expect no match
1911*22dc650dSSadaf Ebrahimi    a\nb
1912*22dc650dSSadaf Ebrahimi    a\rb
1913*22dc650dSSadaf Ebrahimi    a\x85b
1914*22dc650dSSadaf Ebrahimi
1915*22dc650dSSadaf Ebrahimi/^abc./gmx,newline=any
1916*22dc650dSSadaf Ebrahimi    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
1917*22dc650dSSadaf Ebrahimi
1918*22dc650dSSadaf Ebrahimi/abc.$/gmx,newline=any
1919*22dc650dSSadaf Ebrahimi    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
1920*22dc650dSSadaf Ebrahimi
1921*22dc650dSSadaf Ebrahimi/^a\Rb/bsr=unicode
1922*22dc650dSSadaf Ebrahimi    a\nb
1923*22dc650dSSadaf Ebrahimi    a\rb
1924*22dc650dSSadaf Ebrahimi    a\r\nb
1925*22dc650dSSadaf Ebrahimi    a\x0bb
1926*22dc650dSSadaf Ebrahimi    a\x0cb
1927*22dc650dSSadaf Ebrahimi    a\x85b
1928*22dc650dSSadaf Ebrahimi\= Expect no match
1929*22dc650dSSadaf Ebrahimi    a\n\rb
1930*22dc650dSSadaf Ebrahimi
1931*22dc650dSSadaf Ebrahimi/^a\R*b/bsr=unicode
1932*22dc650dSSadaf Ebrahimi    ab
1933*22dc650dSSadaf Ebrahimi    a\nb
1934*22dc650dSSadaf Ebrahimi    a\rb
1935*22dc650dSSadaf Ebrahimi    a\r\nb
1936*22dc650dSSadaf Ebrahimi    a\x0bb
1937*22dc650dSSadaf Ebrahimi    a\x0cb
1938*22dc650dSSadaf Ebrahimi    a\x85b
1939*22dc650dSSadaf Ebrahimi    a\n\rb
1940*22dc650dSSadaf Ebrahimi    a\n\r\x85\x0cb
1941*22dc650dSSadaf Ebrahimi
1942*22dc650dSSadaf Ebrahimi/^a\R+b/bsr=unicode
1943*22dc650dSSadaf Ebrahimi    a\nb
1944*22dc650dSSadaf Ebrahimi    a\rb
1945*22dc650dSSadaf Ebrahimi    a\r\nb
1946*22dc650dSSadaf Ebrahimi    a\x0bb
1947*22dc650dSSadaf Ebrahimi    a\x0cb
1948*22dc650dSSadaf Ebrahimi    a\x85b
1949*22dc650dSSadaf Ebrahimi    a\n\rb
1950*22dc650dSSadaf Ebrahimi    a\n\r\x85\x0cb
1951*22dc650dSSadaf Ebrahimi\= Expect no match
1952*22dc650dSSadaf Ebrahimi    ab
1953*22dc650dSSadaf Ebrahimi
1954*22dc650dSSadaf Ebrahimi/^a\R{1,3}b/bsr=unicode
1955*22dc650dSSadaf Ebrahimi    a\nb
1956*22dc650dSSadaf Ebrahimi    a\n\rb
1957*22dc650dSSadaf Ebrahimi    a\n\r\x85b
1958*22dc650dSSadaf Ebrahimi    a\r\n\r\nb
1959*22dc650dSSadaf Ebrahimi    a\r\n\r\n\r\nb
1960*22dc650dSSadaf Ebrahimi    a\n\r\n\rb
1961*22dc650dSSadaf Ebrahimi    a\n\n\r\nb
1962*22dc650dSSadaf Ebrahimi\= Expect no match
1963*22dc650dSSadaf Ebrahimi    a\n\n\n\rb
1964*22dc650dSSadaf Ebrahimi    a\r
1965*22dc650dSSadaf Ebrahimi
1966*22dc650dSSadaf Ebrahimi/(?&abc)X(?<abc>P)/I
1967*22dc650dSSadaf Ebrahimi    abcPXP123
1968*22dc650dSSadaf Ebrahimi
1969*22dc650dSSadaf Ebrahimi/(?1)X(?<abc>P)/I
1970*22dc650dSSadaf Ebrahimi    abcPXP123
1971*22dc650dSSadaf Ebrahimi
1972*22dc650dSSadaf Ebrahimi/(?:a(?&abc)b)*(?<abc>x)/
1973*22dc650dSSadaf Ebrahimi    123axbaxbaxbx456
1974*22dc650dSSadaf Ebrahimi    123axbaxbaxb456
1975*22dc650dSSadaf Ebrahimi
1976*22dc650dSSadaf Ebrahimi/(?:a(?&abc)b){1,5}(?<abc>x)/
1977*22dc650dSSadaf Ebrahimi    123axbaxbaxbx456
1978*22dc650dSSadaf Ebrahimi
1979*22dc650dSSadaf Ebrahimi/(?:a(?&abc)b){2,5}(?<abc>x)/
1980*22dc650dSSadaf Ebrahimi    123axbaxbaxbx456
1981*22dc650dSSadaf Ebrahimi
1982*22dc650dSSadaf Ebrahimi/(?:a(?&abc)b){2,}(?<abc>x)/
1983*22dc650dSSadaf Ebrahimi    123axbaxbaxbx456
1984*22dc650dSSadaf Ebrahimi
1985*22dc650dSSadaf Ebrahimi/(abc)(?i:(?1))/
1986*22dc650dSSadaf Ebrahimi    defabcabcxyz
1987*22dc650dSSadaf Ebrahimi\= Expect no match
1988*22dc650dSSadaf Ebrahimi    DEFabcABCXYZ
1989*22dc650dSSadaf Ebrahimi
1990*22dc650dSSadaf Ebrahimi/(abc)(?:(?i)(?1))/
1991*22dc650dSSadaf Ebrahimi    defabcabcxyz
1992*22dc650dSSadaf Ebrahimi\= Expect no match
1993*22dc650dSSadaf Ebrahimi    DEFabcABCXYZ
1994*22dc650dSSadaf Ebrahimi
1995*22dc650dSSadaf Ebrahimi/^(a)\g-2/
1996*22dc650dSSadaf Ebrahimi
1997*22dc650dSSadaf Ebrahimi/^(a)\g/
1998*22dc650dSSadaf Ebrahimi
1999*22dc650dSSadaf Ebrahimi/^(a)\g{0}/
2000*22dc650dSSadaf Ebrahimi
2001*22dc650dSSadaf Ebrahimi/^(a)\g{3/
2002*22dc650dSSadaf Ebrahimi
2003*22dc650dSSadaf Ebrahimi/^(a)\g{aa}/
2004*22dc650dSSadaf Ebrahimi
2005*22dc650dSSadaf Ebrahimi/^a.b/newline=lf
2006*22dc650dSSadaf Ebrahimi    a\rb
2007*22dc650dSSadaf Ebrahimi\= Expect no match
2008*22dc650dSSadaf Ebrahimi    a\nb
2009*22dc650dSSadaf Ebrahimi
2010*22dc650dSSadaf Ebrahimi/.+foo/
2011*22dc650dSSadaf Ebrahimi    afoo
2012*22dc650dSSadaf Ebrahimi\= Expect no match
2013*22dc650dSSadaf Ebrahimi    \r\nfoo
2014*22dc650dSSadaf Ebrahimi    \nfoo
2015*22dc650dSSadaf Ebrahimi
2016*22dc650dSSadaf Ebrahimi/.+foo/newline=crlf
2017*22dc650dSSadaf Ebrahimi    afoo
2018*22dc650dSSadaf Ebrahimi    \nfoo
2019*22dc650dSSadaf Ebrahimi\= Expect no match
2020*22dc650dSSadaf Ebrahimi    \r\nfoo
2021*22dc650dSSadaf Ebrahimi
2022*22dc650dSSadaf Ebrahimi/.+foo/newline=any
2023*22dc650dSSadaf Ebrahimi    afoo
2024*22dc650dSSadaf Ebrahimi\= Expect no match
2025*22dc650dSSadaf Ebrahimi    \nfoo
2026*22dc650dSSadaf Ebrahimi    \r\nfoo
2027*22dc650dSSadaf Ebrahimi
2028*22dc650dSSadaf Ebrahimi/.+foo/s
2029*22dc650dSSadaf Ebrahimi    afoo
2030*22dc650dSSadaf Ebrahimi    \r\nfoo
2031*22dc650dSSadaf Ebrahimi    \nfoo
2032*22dc650dSSadaf Ebrahimi
2033*22dc650dSSadaf Ebrahimi/^$/gm,newline=any
2034*22dc650dSSadaf Ebrahimi    abc\r\rxyz
2035*22dc650dSSadaf Ebrahimi    abc\n\rxyz
2036*22dc650dSSadaf Ebrahimi\= Expect no match
2037*22dc650dSSadaf Ebrahimi    abc\r\nxyz
2038*22dc650dSSadaf Ebrahimi
2039*22dc650dSSadaf Ebrahimi/(?m)^$/g,newline=any,aftertext
2040*22dc650dSSadaf Ebrahimi    abc\r\n\r\n
2041*22dc650dSSadaf Ebrahimi
2042*22dc650dSSadaf Ebrahimi/(?m)^$|^\r\n/g,newline=any,aftertext
2043*22dc650dSSadaf Ebrahimi    abc\r\n\r\n
2044*22dc650dSSadaf Ebrahimi
2045*22dc650dSSadaf Ebrahimi/(?m)$/g,newline=any,aftertext
2046*22dc650dSSadaf Ebrahimi    abc\r\n\r\n
2047*22dc650dSSadaf Ebrahimi
2048*22dc650dSSadaf Ebrahimi/abc.$/gmx,newline=anycrlf
2049*22dc650dSSadaf Ebrahimi    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
2050*22dc650dSSadaf Ebrahimi
2051*22dc650dSSadaf Ebrahimi/^X/m
2052*22dc650dSSadaf Ebrahimi    XABC
2053*22dc650dSSadaf Ebrahimi\= Expect no match
2054*22dc650dSSadaf Ebrahimi    XABC\=notbol
2055*22dc650dSSadaf Ebrahimi
2056*22dc650dSSadaf Ebrahimi/(ab|c)(?-1)/B
2057*22dc650dSSadaf Ebrahimi    abc
2058*22dc650dSSadaf Ebrahimi
2059*22dc650dSSadaf Ebrahimi/xy(?+1)(abc)/B
2060*22dc650dSSadaf Ebrahimi    xyabcabc
2061*22dc650dSSadaf Ebrahimi\= Expect no match
2062*22dc650dSSadaf Ebrahimi    xyabc
2063*22dc650dSSadaf Ebrahimi
2064*22dc650dSSadaf Ebrahimi/x(?-0)y/
2065*22dc650dSSadaf Ebrahimi
2066*22dc650dSSadaf Ebrahimi/x(?-1)y/
2067*22dc650dSSadaf Ebrahimi
2068*22dc650dSSadaf Ebrahimi/x(?+0)y/
2069*22dc650dSSadaf Ebrahimi
2070*22dc650dSSadaf Ebrahimi/x(?+1)y/
2071*22dc650dSSadaf Ebrahimi
2072*22dc650dSSadaf Ebrahimi/^(abc)?(?(-1)X|Y)/B
2073*22dc650dSSadaf Ebrahimi    abcX
2074*22dc650dSSadaf Ebrahimi    Y
2075*22dc650dSSadaf Ebrahimi\= Expect no match
2076*22dc650dSSadaf Ebrahimi    abcY
2077*22dc650dSSadaf Ebrahimi
2078*22dc650dSSadaf Ebrahimi/^((?(+1)X|Y)(abc))+/B
2079*22dc650dSSadaf Ebrahimi    YabcXabc
2080*22dc650dSSadaf Ebrahimi    YabcXabcXabc
2081*22dc650dSSadaf Ebrahimi\= Expect no match
2082*22dc650dSSadaf Ebrahimi    XabcXabc
2083*22dc650dSSadaf Ebrahimi
2084*22dc650dSSadaf Ebrahimi/(?(-1)a)/B
2085*22dc650dSSadaf Ebrahimi
2086*22dc650dSSadaf Ebrahimi/((?(-1)a))/B
2087*22dc650dSSadaf Ebrahimi
2088*22dc650dSSadaf Ebrahimi/((?(-2)a))/B
2089*22dc650dSSadaf Ebrahimi
2090*22dc650dSSadaf Ebrahimi/^(?(+1)X|Y)(.)/B
2091*22dc650dSSadaf Ebrahimi    Y!
2092*22dc650dSSadaf Ebrahimi
2093*22dc650dSSadaf Ebrahimi/(?<A>tom|bon)-\k{A}/
2094*22dc650dSSadaf Ebrahimi    tom-tom
2095*22dc650dSSadaf Ebrahimi    bon-bon
2096*22dc650dSSadaf Ebrahimi\= Expect no match
2097*22dc650dSSadaf Ebrahimi    tom-bon
2098*22dc650dSSadaf Ebrahimi
2099*22dc650dSSadaf Ebrahimi/\g{A/
2100*22dc650dSSadaf Ebrahimi
2101*22dc650dSSadaf Ebrahimi/(?|(abc)|(xyz))/B
2102*22dc650dSSadaf Ebrahimi   >abc<
2103*22dc650dSSadaf Ebrahimi   >xyz<
2104*22dc650dSSadaf Ebrahimi
2105*22dc650dSSadaf Ebrahimi/(x)(?|(abc)|(xyz))(x)/B
2106*22dc650dSSadaf Ebrahimi    xabcx
2107*22dc650dSSadaf Ebrahimi    xxyzx
2108*22dc650dSSadaf Ebrahimi
2109*22dc650dSSadaf Ebrahimi/(x)(?|(abc)(pqr)|(xyz))(x)/B
2110*22dc650dSSadaf Ebrahimi    xabcpqrx
2111*22dc650dSSadaf Ebrahimi    xxyzx
2112*22dc650dSSadaf Ebrahimi
2113*22dc650dSSadaf Ebrahimi/\H++X/B
2114*22dc650dSSadaf Ebrahimi\= Expect no match
2115*22dc650dSSadaf Ebrahimi    XXXX
2116*22dc650dSSadaf Ebrahimi
2117*22dc650dSSadaf Ebrahimi/\H+\hY/B
2118*22dc650dSSadaf Ebrahimi    XXXX Y
2119*22dc650dSSadaf Ebrahimi
2120*22dc650dSSadaf Ebrahimi/\H+ Y/B
2121*22dc650dSSadaf Ebrahimi
2122*22dc650dSSadaf Ebrahimi/\h+A/B
2123*22dc650dSSadaf Ebrahimi
2124*22dc650dSSadaf Ebrahimi/\v*B/B
2125*22dc650dSSadaf Ebrahimi
2126*22dc650dSSadaf Ebrahimi/\V+\x0a/B
2127*22dc650dSSadaf Ebrahimi
2128*22dc650dSSadaf Ebrahimi/A+\h/B
2129*22dc650dSSadaf Ebrahimi
2130*22dc650dSSadaf Ebrahimi/ *\H/B
2131*22dc650dSSadaf Ebrahimi
2132*22dc650dSSadaf Ebrahimi/A*\v/B
2133*22dc650dSSadaf Ebrahimi
2134*22dc650dSSadaf Ebrahimi/\x0b*\V/B
2135*22dc650dSSadaf Ebrahimi
2136*22dc650dSSadaf Ebrahimi/\d+\h/B
2137*22dc650dSSadaf Ebrahimi
2138*22dc650dSSadaf Ebrahimi/\d*\v/B
2139*22dc650dSSadaf Ebrahimi
2140*22dc650dSSadaf Ebrahimi/S+\h\S+\v/B
2141*22dc650dSSadaf Ebrahimi
2142*22dc650dSSadaf Ebrahimi/\w{3,}\h\w+\v/B
2143*22dc650dSSadaf Ebrahimi
2144*22dc650dSSadaf Ebrahimi/\h+\d\h+\w\h+\S\h+\H/B
2145*22dc650dSSadaf Ebrahimi
2146*22dc650dSSadaf Ebrahimi/\v+\d\v+\w\v+\S\v+\V/B
2147*22dc650dSSadaf Ebrahimi
2148*22dc650dSSadaf Ebrahimi/\H+\h\H+\d/B
2149*22dc650dSSadaf Ebrahimi
2150*22dc650dSSadaf Ebrahimi/\V+\v\V+\w/B
2151*22dc650dSSadaf Ebrahimi
2152*22dc650dSSadaf Ebrahimi/\( (?: [^()]* | (?R) )* \)/x
2153*22dc650dSSadaf Ebrahimi(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)\=jitstack=1024
2154*22dc650dSSadaf Ebrahimi
2155*22dc650dSSadaf Ebrahimi/[\E]AAA/
2156*22dc650dSSadaf Ebrahimi
2157*22dc650dSSadaf Ebrahimi/[\Q\E]AAA/
2158*22dc650dSSadaf Ebrahimi
2159*22dc650dSSadaf Ebrahimi/[^\E]AAA/
2160*22dc650dSSadaf Ebrahimi
2161*22dc650dSSadaf Ebrahimi/[^\Q\E]AAA/
2162*22dc650dSSadaf Ebrahimi
2163*22dc650dSSadaf Ebrahimi/[\E^]AAA/
2164*22dc650dSSadaf Ebrahimi
2165*22dc650dSSadaf Ebrahimi/[\Q\E^]AAA/
2166*22dc650dSSadaf Ebrahimi
2167*22dc650dSSadaf Ebrahimi/A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/B
2168*22dc650dSSadaf Ebrahimi
2169*22dc650dSSadaf Ebrahimi/^a+(*FAIL)/auto_callout
2170*22dc650dSSadaf Ebrahimi\= Expect no match
2171*22dc650dSSadaf Ebrahimi    aaaaaa
2172*22dc650dSSadaf Ebrahimi
2173*22dc650dSSadaf Ebrahimi/a+b?c+(*FAIL)/auto_callout
2174*22dc650dSSadaf Ebrahimi\= Expect no match
2175*22dc650dSSadaf Ebrahimi    aaabccc
2176*22dc650dSSadaf Ebrahimi
2177*22dc650dSSadaf Ebrahimi/a+b?(*PRUNE)c+(*FAIL)/auto_callout
2178*22dc650dSSadaf Ebrahimi\= Expect no match
2179*22dc650dSSadaf Ebrahimi    aaabccc
2180*22dc650dSSadaf Ebrahimi
2181*22dc650dSSadaf Ebrahimi/a+b?(*COMMIT)c+(*FAIL)/auto_callout
2182*22dc650dSSadaf Ebrahimi\= Expect no match
2183*22dc650dSSadaf Ebrahimi    aaabccc
2184*22dc650dSSadaf Ebrahimi
2185*22dc650dSSadaf Ebrahimi/a+b?(*SKIP)c+(*FAIL)/auto_callout
2186*22dc650dSSadaf Ebrahimi\= Expect no match
2187*22dc650dSSadaf Ebrahimi    aaabcccaaabccc
2188*22dc650dSSadaf Ebrahimi
2189*22dc650dSSadaf Ebrahimi/a+b?(*THEN)c+(*FAIL)/auto_callout
2190*22dc650dSSadaf Ebrahimi\= Expect no match
2191*22dc650dSSadaf Ebrahimi    aaabccc
2192*22dc650dSSadaf Ebrahimi
2193*22dc650dSSadaf Ebrahimi/a(*MARK)b/
2194*22dc650dSSadaf Ebrahimi
2195*22dc650dSSadaf Ebrahimi/\g6666666666/
2196*22dc650dSSadaf Ebrahimi
2197*22dc650dSSadaf Ebrahimi/[\g6666666666]/B
2198*22dc650dSSadaf Ebrahimi
2199*22dc650dSSadaf Ebrahimi/(?1)\c[/
2200*22dc650dSSadaf Ebrahimi
2201*22dc650dSSadaf Ebrahimi/.+A/newline=crlf
2202*22dc650dSSadaf Ebrahimi\= Expect no match
2203*22dc650dSSadaf Ebrahimi    \r\nA
2204*22dc650dSSadaf Ebrahimi
2205*22dc650dSSadaf Ebrahimi/\nA/newline=crlf
2206*22dc650dSSadaf Ebrahimi    \r\nA
2207*22dc650dSSadaf Ebrahimi
2208*22dc650dSSadaf Ebrahimi/[\r\n]A/newline=crlf
2209*22dc650dSSadaf Ebrahimi    \r\nA
2210*22dc650dSSadaf Ebrahimi
2211*22dc650dSSadaf Ebrahimi/(\r|\n)A/newline=crlf
2212*22dc650dSSadaf Ebrahimi    \r\nA
2213*22dc650dSSadaf Ebrahimi
2214*22dc650dSSadaf Ebrahimi/a(*CR)b/
2215*22dc650dSSadaf Ebrahimi
2216*22dc650dSSadaf Ebrahimi/(*CR)a.b/
2217*22dc650dSSadaf Ebrahimi    a\nb
2218*22dc650dSSadaf Ebrahimi\= Expect no match
2219*22dc650dSSadaf Ebrahimi    a\rb
2220*22dc650dSSadaf Ebrahimi
2221*22dc650dSSadaf Ebrahimi/(*CR)a.b/newline=lf
2222*22dc650dSSadaf Ebrahimi    a\nb
2223*22dc650dSSadaf Ebrahimi\= Expect no match
2224*22dc650dSSadaf Ebrahimi    a\rb
2225*22dc650dSSadaf Ebrahimi
2226*22dc650dSSadaf Ebrahimi/(*LF)a.b/newline=CRLF
2227*22dc650dSSadaf Ebrahimi    a\rb
2228*22dc650dSSadaf Ebrahimi\= Expect no match
2229*22dc650dSSadaf Ebrahimi    a\nb
2230*22dc650dSSadaf Ebrahimi
2231*22dc650dSSadaf Ebrahimi/(*CRLF)a.b/
2232*22dc650dSSadaf Ebrahimi    a\rb
2233*22dc650dSSadaf Ebrahimi    a\nb
2234*22dc650dSSadaf Ebrahimi\= Expect no match
2235*22dc650dSSadaf Ebrahimi    a\r\nb
2236*22dc650dSSadaf Ebrahimi
2237*22dc650dSSadaf Ebrahimi/(*ANYCRLF)a.b/newline=CR
2238*22dc650dSSadaf Ebrahimi\= Expect no match
2239*22dc650dSSadaf Ebrahimi    a\rb
2240*22dc650dSSadaf Ebrahimi    a\nb
2241*22dc650dSSadaf Ebrahimi    a\r\nb
2242*22dc650dSSadaf Ebrahimi
2243*22dc650dSSadaf Ebrahimi/(*ANY)a.b/newline=cr
2244*22dc650dSSadaf Ebrahimi\= Expect no match
2245*22dc650dSSadaf Ebrahimi    a\rb
2246*22dc650dSSadaf Ebrahimi    a\nb
2247*22dc650dSSadaf Ebrahimi    a\r\nb
2248*22dc650dSSadaf Ebrahimi    a\x85b
2249*22dc650dSSadaf Ebrahimi
2250*22dc650dSSadaf Ebrahimi/(*ANY).*/g
2251*22dc650dSSadaf Ebrahimi    abc\r\ndef
2252*22dc650dSSadaf Ebrahimi
2253*22dc650dSSadaf Ebrahimi/(*ANYCRLF).*/g
2254*22dc650dSSadaf Ebrahimi    abc\r\ndef
2255*22dc650dSSadaf Ebrahimi
2256*22dc650dSSadaf Ebrahimi/(*CRLF).*/g
2257*22dc650dSSadaf Ebrahimi    abc\r\ndef
2258*22dc650dSSadaf Ebrahimi
2259*22dc650dSSadaf Ebrahimi/(*NUL)^.*/
2260*22dc650dSSadaf Ebrahimi    a\nb\x00ccc
2261*22dc650dSSadaf Ebrahimi
2262*22dc650dSSadaf Ebrahimi/(*NUL)^.*/s
2263*22dc650dSSadaf Ebrahimi    a\nb\x00ccc
2264*22dc650dSSadaf Ebrahimi
2265*22dc650dSSadaf Ebrahimi/^x/m,newline=NUL
2266*22dc650dSSadaf Ebrahimi    ab\x00xy
2267*22dc650dSSadaf Ebrahimi
2268*22dc650dSSadaf Ebrahimi/'#comment' 0d 0a 00 '^x\' 0a 'y'/x,newline=nul,hex
2269*22dc650dSSadaf Ebrahimi    x\nyz
2270*22dc650dSSadaf Ebrahimi
2271*22dc650dSSadaf Ebrahimi/(*NUL)^X\NY/
2272*22dc650dSSadaf Ebrahimi    X\nY
2273*22dc650dSSadaf Ebrahimi    X\rY
2274*22dc650dSSadaf Ebrahimi\= Expect no match
2275*22dc650dSSadaf Ebrahimi    X\x00Y
2276*22dc650dSSadaf Ebrahimi
2277*22dc650dSSadaf Ebrahimi/a\Rb/I,bsr=anycrlf
2278*22dc650dSSadaf Ebrahimi    a\rb
2279*22dc650dSSadaf Ebrahimi    a\nb
2280*22dc650dSSadaf Ebrahimi    a\r\nb
2281*22dc650dSSadaf Ebrahimi\= Expect no match
2282*22dc650dSSadaf Ebrahimi    a\x85b
2283*22dc650dSSadaf Ebrahimi    a\x0bb
2284*22dc650dSSadaf Ebrahimi
2285*22dc650dSSadaf Ebrahimi/a\Rb/I,bsr=unicode
2286*22dc650dSSadaf Ebrahimi    a\rb
2287*22dc650dSSadaf Ebrahimi    a\nb
2288*22dc650dSSadaf Ebrahimi    a\r\nb
2289*22dc650dSSadaf Ebrahimi    a\x85b
2290*22dc650dSSadaf Ebrahimi    a\x0bb
2291*22dc650dSSadaf Ebrahimi
2292*22dc650dSSadaf Ebrahimi/a\R?b/I,bsr=anycrlf
2293*22dc650dSSadaf Ebrahimi    a\rb
2294*22dc650dSSadaf Ebrahimi    a\nb
2295*22dc650dSSadaf Ebrahimi    a\r\nb
2296*22dc650dSSadaf Ebrahimi\= Expect no match
2297*22dc650dSSadaf Ebrahimi    a\x85b
2298*22dc650dSSadaf Ebrahimi    a\x0bb
2299*22dc650dSSadaf Ebrahimi
2300*22dc650dSSadaf Ebrahimi/a\R?b/I,bsr=unicode
2301*22dc650dSSadaf Ebrahimi    a\rb
2302*22dc650dSSadaf Ebrahimi    a\nb
2303*22dc650dSSadaf Ebrahimi    a\r\nb
2304*22dc650dSSadaf Ebrahimi    a\x85b
2305*22dc650dSSadaf Ebrahimi    a\x0bb
2306*22dc650dSSadaf Ebrahimi
2307*22dc650dSSadaf Ebrahimi/a\R{2,4}b/I,bsr=anycrlf
2308*22dc650dSSadaf Ebrahimi    a\r\n\nb
2309*22dc650dSSadaf Ebrahimi    a\n\r\rb
2310*22dc650dSSadaf Ebrahimi    a\r\n\r\n\r\n\r\nb
2311*22dc650dSSadaf Ebrahimi\= Expect no match
2312*22dc650dSSadaf Ebrahimi    a\x85\x85b
2313*22dc650dSSadaf Ebrahimi    a\x0b\x0bb
2314*22dc650dSSadaf Ebrahimi
2315*22dc650dSSadaf Ebrahimi/a\R{2,4}b/I,bsr=unicode
2316*22dc650dSSadaf Ebrahimi    a\r\rb
2317*22dc650dSSadaf Ebrahimi    a\n\n\nb
2318*22dc650dSSadaf Ebrahimi    a\r\n\n\r\rb
2319*22dc650dSSadaf Ebrahimi    a\x85\x85b
2320*22dc650dSSadaf Ebrahimi    a\x0b\x0bb
2321*22dc650dSSadaf Ebrahimi\= Expect no match
2322*22dc650dSSadaf Ebrahimi    a\r\r\r\r\rb
2323*22dc650dSSadaf Ebrahimi
2324*22dc650dSSadaf Ebrahimi/(*BSR_ANYCRLF)a\Rb/I
2325*22dc650dSSadaf Ebrahimi    a\nb
2326*22dc650dSSadaf Ebrahimi    a\rb
2327*22dc650dSSadaf Ebrahimi
2328*22dc650dSSadaf Ebrahimi/(*BSR_UNICODE)a\Rb/I
2329*22dc650dSSadaf Ebrahimi    a\x85b
2330*22dc650dSSadaf Ebrahimi
2331*22dc650dSSadaf Ebrahimi/(*BSR_ANYCRLF)(*CRLF)a\Rb/I
2332*22dc650dSSadaf Ebrahimi    a\nb
2333*22dc650dSSadaf Ebrahimi    a\rb
2334*22dc650dSSadaf Ebrahimi
2335*22dc650dSSadaf Ebrahimi/(*CRLF)(*BSR_UNICODE)a\Rb/I
2336*22dc650dSSadaf Ebrahimi    a\x85b
2337*22dc650dSSadaf Ebrahimi
2338*22dc650dSSadaf Ebrahimi/(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
2339*22dc650dSSadaf Ebrahimi
2340*22dc650dSSadaf Ebrahimi/(?<a>)(?&)/
2341*22dc650dSSadaf Ebrahimi
2342*22dc650dSSadaf Ebrahimi/(?<abc>)(?&a)/
2343*22dc650dSSadaf Ebrahimi
2344*22dc650dSSadaf Ebrahimi/(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
2345*22dc650dSSadaf Ebrahimi
2346*22dc650dSSadaf Ebrahimi/(?+-a)/
2347*22dc650dSSadaf Ebrahimi
2348*22dc650dSSadaf Ebrahimi/(?-+a)/
2349*22dc650dSSadaf Ebrahimi
2350*22dc650dSSadaf Ebrahimi/(?(-1))/
2351*22dc650dSSadaf Ebrahimi
2352*22dc650dSSadaf Ebrahimi/(?(+10))/
2353*22dc650dSSadaf Ebrahimi
2354*22dc650dSSadaf Ebrahimi/(?(10))/
2355*22dc650dSSadaf Ebrahimi
2356*22dc650dSSadaf Ebrahimi/(?(+2))()()/
2357*22dc650dSSadaf Ebrahimi
2358*22dc650dSSadaf Ebrahimi/(?(2))()()/
2359*22dc650dSSadaf Ebrahimi
2360*22dc650dSSadaf Ebrahimi/\k''/
2361*22dc650dSSadaf Ebrahimi
2362*22dc650dSSadaf Ebrahimi/\k<>/
2363*22dc650dSSadaf Ebrahimi
2364*22dc650dSSadaf Ebrahimi/\k{}/
2365*22dc650dSSadaf Ebrahimi
2366*22dc650dSSadaf Ebrahimi/\k/
2367*22dc650dSSadaf Ebrahimi
2368*22dc650dSSadaf Ebrahimi/\kabc/
2369*22dc650dSSadaf Ebrahimi
2370*22dc650dSSadaf Ebrahimi/(?P=)/
2371*22dc650dSSadaf Ebrahimi
2372*22dc650dSSadaf Ebrahimi/(?P>)/
2373*22dc650dSSadaf Ebrahimi
2374*22dc650dSSadaf Ebrahimi/[[:foo:]]/
2375*22dc650dSSadaf Ebrahimi
2376*22dc650dSSadaf Ebrahimi/[[:1234:]]/
2377*22dc650dSSadaf Ebrahimi
2378*22dc650dSSadaf Ebrahimi/[[:f\oo:]]/
2379*22dc650dSSadaf Ebrahimi
2380*22dc650dSSadaf Ebrahimi/[[: :]]/
2381*22dc650dSSadaf Ebrahimi
2382*22dc650dSSadaf Ebrahimi/[[:...:]]/
2383*22dc650dSSadaf Ebrahimi
2384*22dc650dSSadaf Ebrahimi/[[:l\ower:]]/
2385*22dc650dSSadaf Ebrahimi
2386*22dc650dSSadaf Ebrahimi/[[:abc\:]]/
2387*22dc650dSSadaf Ebrahimi
2388*22dc650dSSadaf Ebrahimi/[abc[:x\]pqr:]]/
2389*22dc650dSSadaf Ebrahimi
2390*22dc650dSSadaf Ebrahimi/[[:a\dz:]]/
2391*22dc650dSSadaf Ebrahimi
2392*22dc650dSSadaf Ebrahimi/(^(a|b\g<-1'c))/
2393*22dc650dSSadaf Ebrahimi
2394*22dc650dSSadaf Ebrahimi/^(?+1)(?<a>x|y){0}z/
2395*22dc650dSSadaf Ebrahimi    xzxx
2396*22dc650dSSadaf Ebrahimi    yzyy
2397*22dc650dSSadaf Ebrahimi\= Expect no match
2398*22dc650dSSadaf Ebrahimi    xxz
2399*22dc650dSSadaf Ebrahimi
2400*22dc650dSSadaf Ebrahimi/(\3)(\1)(a)/
2401*22dc650dSSadaf Ebrahimi\= Expect no match
2402*22dc650dSSadaf Ebrahimi    cat
2403*22dc650dSSadaf Ebrahimi
2404*22dc650dSSadaf Ebrahimi/(\3)(\1)(a)/allow_empty_class,match_unset_backref,dupnames
2405*22dc650dSSadaf Ebrahimi    cat
2406*22dc650dSSadaf Ebrahimi
2407*22dc650dSSadaf Ebrahimi/TA]/
2408*22dc650dSSadaf Ebrahimi    The ACTA] comes
2409*22dc650dSSadaf Ebrahimi
2410*22dc650dSSadaf Ebrahimi/TA]/allow_empty_class,match_unset_backref,dupnames
2411*22dc650dSSadaf Ebrahimi    The ACTA] comes
2412*22dc650dSSadaf Ebrahimi
2413*22dc650dSSadaf Ebrahimi/(?2)[]a()b](abc)/
2414*22dc650dSSadaf Ebrahimi    abcbabc
2415*22dc650dSSadaf Ebrahimi
2416*22dc650dSSadaf Ebrahimi/(?2)[^]a()b](abc)/
2417*22dc650dSSadaf Ebrahimi    abcbabc
2418*22dc650dSSadaf Ebrahimi
2419*22dc650dSSadaf Ebrahimi/(?1)[]a()b](abc)/
2420*22dc650dSSadaf Ebrahimi    abcbabc
2421*22dc650dSSadaf Ebrahimi\= Expect no match
2422*22dc650dSSadaf Ebrahimi    abcXabc
2423*22dc650dSSadaf Ebrahimi
2424*22dc650dSSadaf Ebrahimi/(?1)[^]a()b](abc)/
2425*22dc650dSSadaf Ebrahimi    abcXabc
2426*22dc650dSSadaf Ebrahimi\= Expect no match
2427*22dc650dSSadaf Ebrahimi    abcbabc
2428*22dc650dSSadaf Ebrahimi
2429*22dc650dSSadaf Ebrahimi/(?2)[]a()b](abc)(xyz)/
2430*22dc650dSSadaf Ebrahimi    xyzbabcxyz
2431*22dc650dSSadaf Ebrahimi
2432*22dc650dSSadaf Ebrahimi/(?&N)[]a(?<N>)](?<M>abc)/
2433*22dc650dSSadaf Ebrahimi   abc<abc
2434*22dc650dSSadaf Ebrahimi
2435*22dc650dSSadaf Ebrahimi/(?&N)[]a(?<N>)](abc)/
2436*22dc650dSSadaf Ebrahimi   abc<abc
2437*22dc650dSSadaf Ebrahimi
2438*22dc650dSSadaf Ebrahimi/a[]b/
2439*22dc650dSSadaf Ebrahimi
2440*22dc650dSSadaf Ebrahimi/a[^]b/
2441*22dc650dSSadaf Ebrahimi
2442*22dc650dSSadaf Ebrahimi/a[]b/allow_empty_class,match_unset_backref,dupnames
2443*22dc650dSSadaf Ebrahimi\= Expect no match
2444*22dc650dSSadaf Ebrahimi    ab
2445*22dc650dSSadaf Ebrahimi
2446*22dc650dSSadaf Ebrahimi/a[]+b/allow_empty_class,match_unset_backref,dupnames
2447*22dc650dSSadaf Ebrahimi\= Expect no match
2448*22dc650dSSadaf Ebrahimi    ab
2449*22dc650dSSadaf Ebrahimi
2450*22dc650dSSadaf Ebrahimi/a[]*+b/allow_empty_class,match_unset_backref,dupnames
2451*22dc650dSSadaf Ebrahimi\= Expect no match
2452*22dc650dSSadaf Ebrahimi    ab
2453*22dc650dSSadaf Ebrahimi
2454*22dc650dSSadaf Ebrahimi/a[^]b/allow_empty_class,match_unset_backref,dupnames
2455*22dc650dSSadaf Ebrahimi    aXb
2456*22dc650dSSadaf Ebrahimi    a\nb
2457*22dc650dSSadaf Ebrahimi\= Expect no match
2458*22dc650dSSadaf Ebrahimi    ab
2459*22dc650dSSadaf Ebrahimi
2460*22dc650dSSadaf Ebrahimi/a[^]+b/allow_empty_class,match_unset_backref,dupnames
2461*22dc650dSSadaf Ebrahimi    aXb
2462*22dc650dSSadaf Ebrahimi    a\nX\nXb
2463*22dc650dSSadaf Ebrahimi\= Expect no match
2464*22dc650dSSadaf Ebrahimi    ab
2465*22dc650dSSadaf Ebrahimi
2466*22dc650dSSadaf Ebrahimi/a(?!)b/B
2467*22dc650dSSadaf Ebrahimi
2468*22dc650dSSadaf Ebrahimi/(?!)?a/B
2469*22dc650dSSadaf Ebrahimi    ab
2470*22dc650dSSadaf Ebrahimi
2471*22dc650dSSadaf Ebrahimi/a(*FAIL)+b/
2472*22dc650dSSadaf Ebrahimi
2473*22dc650dSSadaf Ebrahimi/(abc|pqr|123){0}[xyz]/I
2474*22dc650dSSadaf Ebrahimi
2475*22dc650dSSadaf Ebrahimi/(?(?=.*b)b|^)/I,auto_callout
2476*22dc650dSSadaf Ebrahimi   adc
2477*22dc650dSSadaf Ebrahimi   abc
2478*22dc650dSSadaf Ebrahimi
2479*22dc650dSSadaf Ebrahimi/(?(?=b).*b|^d)/I
2480*22dc650dSSadaf Ebrahimi
2481*22dc650dSSadaf Ebrahimi/(?(?=.*b).*b|^d)/I
2482*22dc650dSSadaf Ebrahimi
2483*22dc650dSSadaf Ebrahimi/xyz/auto_callout
2484*22dc650dSSadaf Ebrahimi  xyz
2485*22dc650dSSadaf Ebrahimi  abcxyz
2486*22dc650dSSadaf Ebrahimi\= Expect no match
2487*22dc650dSSadaf Ebrahimi  abc
2488*22dc650dSSadaf Ebrahimi  abcxypqr
2489*22dc650dSSadaf Ebrahimi
2490*22dc650dSSadaf Ebrahimi/xyz/auto_callout,no_start_optimize
2491*22dc650dSSadaf Ebrahimi  abcxyz
2492*22dc650dSSadaf Ebrahimi\= Expect no match
2493*22dc650dSSadaf Ebrahimi  abc
2494*22dc650dSSadaf Ebrahimi  abcxypqr
2495*22dc650dSSadaf Ebrahimi
2496*22dc650dSSadaf Ebrahimi/(*NO_START_OPT)xyz/auto_callout
2497*22dc650dSSadaf Ebrahimi  abcxyz
2498*22dc650dSSadaf Ebrahimi
2499*22dc650dSSadaf Ebrahimi/(*NO_AUTO_POSSESS)a+b/B
2500*22dc650dSSadaf Ebrahimi
2501*22dc650dSSadaf Ebrahimi/xyz/auto_callout,no_start_optimize
2502*22dc650dSSadaf Ebrahimi  abcxyz
2503*22dc650dSSadaf Ebrahimi
2504*22dc650dSSadaf Ebrahimi/^"((?(?=[a])[^"])|b)*"$/auto_callout
2505*22dc650dSSadaf Ebrahimi    "ab"
2506*22dc650dSSadaf Ebrahimi
2507*22dc650dSSadaf Ebrahimi/^"((?(?=[a])[^"])|b)*"$/
2508*22dc650dSSadaf Ebrahimi    "ab"
2509*22dc650dSSadaf Ebrahimi
2510*22dc650dSSadaf Ebrahimi/^X(?5)(a)(?|(b)|(q))(c)(d)Y/
2511*22dc650dSSadaf Ebrahimi    XYabcdY
2512*22dc650dSSadaf Ebrahimi
2513*22dc650dSSadaf Ebrahimi/^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
2514*22dc650dSSadaf Ebrahimi    XYabcdY
2515*22dc650dSSadaf Ebrahimi
2516*22dc650dSSadaf Ebrahimi/Xa{2,4}b/
2517*22dc650dSSadaf Ebrahimi    X\=ps
2518*22dc650dSSadaf Ebrahimi    Xa\=ps
2519*22dc650dSSadaf Ebrahimi    Xaa\=ps
2520*22dc650dSSadaf Ebrahimi    Xaaa\=ps
2521*22dc650dSSadaf Ebrahimi    Xaaaa\=ps
2522*22dc650dSSadaf Ebrahimi
2523*22dc650dSSadaf Ebrahimi/Xa{2,4}?b/
2524*22dc650dSSadaf Ebrahimi    X\=ps
2525*22dc650dSSadaf Ebrahimi    Xa\=ps
2526*22dc650dSSadaf Ebrahimi    Xaa\=ps
2527*22dc650dSSadaf Ebrahimi    Xaaa\=ps
2528*22dc650dSSadaf Ebrahimi    Xaaaa\=ps
2529*22dc650dSSadaf Ebrahimi
2530*22dc650dSSadaf Ebrahimi/Xa{2,4}+b/
2531*22dc650dSSadaf Ebrahimi    X\=ps
2532*22dc650dSSadaf Ebrahimi    Xa\=ps
2533*22dc650dSSadaf Ebrahimi    Xaa\=ps
2534*22dc650dSSadaf Ebrahimi    Xaaa\=ps
2535*22dc650dSSadaf Ebrahimi    Xaaaa\=ps
2536*22dc650dSSadaf Ebrahimi
2537*22dc650dSSadaf Ebrahimi/X\d{2,4}b/
2538*22dc650dSSadaf Ebrahimi    X\=ps
2539*22dc650dSSadaf Ebrahimi    X3\=ps
2540*22dc650dSSadaf Ebrahimi    X33\=ps
2541*22dc650dSSadaf Ebrahimi    X333\=ps
2542*22dc650dSSadaf Ebrahimi    X3333\=ps
2543*22dc650dSSadaf Ebrahimi
2544*22dc650dSSadaf Ebrahimi/X\d{2,4}?b/
2545*22dc650dSSadaf Ebrahimi    X\=ps
2546*22dc650dSSadaf Ebrahimi    X3\=ps
2547*22dc650dSSadaf Ebrahimi    X33\=ps
2548*22dc650dSSadaf Ebrahimi    X333\=ps
2549*22dc650dSSadaf Ebrahimi    X3333\=ps
2550*22dc650dSSadaf Ebrahimi
2551*22dc650dSSadaf Ebrahimi/X\d{2,4}+b/
2552*22dc650dSSadaf Ebrahimi    X\=ps
2553*22dc650dSSadaf Ebrahimi    X3\=ps
2554*22dc650dSSadaf Ebrahimi    X33\=ps
2555*22dc650dSSadaf Ebrahimi    X333\=ps
2556*22dc650dSSadaf Ebrahimi    X3333\=ps
2557*22dc650dSSadaf Ebrahimi
2558*22dc650dSSadaf Ebrahimi/X\D{2,4}b/
2559*22dc650dSSadaf Ebrahimi    X\=ps
2560*22dc650dSSadaf Ebrahimi    Xa\=ps
2561*22dc650dSSadaf Ebrahimi    Xaa\=ps
2562*22dc650dSSadaf Ebrahimi    Xaaa\=ps
2563*22dc650dSSadaf Ebrahimi    Xaaaa\=ps
2564*22dc650dSSadaf Ebrahimi
2565*22dc650dSSadaf Ebrahimi/X\D{2,4}?b/
2566*22dc650dSSadaf Ebrahimi    X\=ps
2567*22dc650dSSadaf Ebrahimi    Xa\=ps
2568*22dc650dSSadaf Ebrahimi    Xaa\=ps
2569*22dc650dSSadaf Ebrahimi    Xaaa\=ps
2570*22dc650dSSadaf Ebrahimi    Xaaaa\=ps
2571*22dc650dSSadaf Ebrahimi
2572*22dc650dSSadaf Ebrahimi/X\D{2,4}+b/
2573*22dc650dSSadaf Ebrahimi    X\=ps
2574*22dc650dSSadaf Ebrahimi    Xa\=ps
2575*22dc650dSSadaf Ebrahimi    Xaa\=ps
2576*22dc650dSSadaf Ebrahimi    Xaaa\=ps
2577*22dc650dSSadaf Ebrahimi    Xaaaa\=ps
2578*22dc650dSSadaf Ebrahimi
2579*22dc650dSSadaf Ebrahimi/X[abc]{2,4}b/
2580*22dc650dSSadaf Ebrahimi    X\=ps
2581*22dc650dSSadaf Ebrahimi    Xa\=ps
2582*22dc650dSSadaf Ebrahimi    Xaa\=ps
2583*22dc650dSSadaf Ebrahimi    Xaaa\=ps
2584*22dc650dSSadaf Ebrahimi    Xaaaa\=ps
2585*22dc650dSSadaf Ebrahimi
2586*22dc650dSSadaf Ebrahimi/X[abc]{2,4}?b/
2587*22dc650dSSadaf Ebrahimi    X\=ps
2588*22dc650dSSadaf Ebrahimi    Xa\=ps
2589*22dc650dSSadaf Ebrahimi    Xaa\=ps
2590*22dc650dSSadaf Ebrahimi    Xaaa\=ps
2591*22dc650dSSadaf Ebrahimi    Xaaaa\=ps
2592*22dc650dSSadaf Ebrahimi
2593*22dc650dSSadaf Ebrahimi/X[abc]{2,4}+b/
2594*22dc650dSSadaf Ebrahimi    X\=ps
2595*22dc650dSSadaf Ebrahimi    Xa\=ps
2596*22dc650dSSadaf Ebrahimi    Xaa\=ps
2597*22dc650dSSadaf Ebrahimi    Xaaa\=ps
2598*22dc650dSSadaf Ebrahimi    Xaaaa\=ps
2599*22dc650dSSadaf Ebrahimi
2600*22dc650dSSadaf Ebrahimi/X[^a]{2,4}b/
2601*22dc650dSSadaf Ebrahimi    X\=ps
2602*22dc650dSSadaf Ebrahimi    Xz\=ps
2603*22dc650dSSadaf Ebrahimi    Xzz\=ps
2604*22dc650dSSadaf Ebrahimi    Xzzz\=ps
2605*22dc650dSSadaf Ebrahimi    Xzzzz\=ps
2606*22dc650dSSadaf Ebrahimi
2607*22dc650dSSadaf Ebrahimi/X[^a]{2,4}?b/
2608*22dc650dSSadaf Ebrahimi    X\=ps
2609*22dc650dSSadaf Ebrahimi    Xz\=ps
2610*22dc650dSSadaf Ebrahimi    Xzz\=ps
2611*22dc650dSSadaf Ebrahimi    Xzzz\=ps
2612*22dc650dSSadaf Ebrahimi    Xzzzz\=ps
2613*22dc650dSSadaf Ebrahimi
2614*22dc650dSSadaf Ebrahimi/X[^a]{2,4}+b/
2615*22dc650dSSadaf Ebrahimi    X\=ps
2616*22dc650dSSadaf Ebrahimi    Xz\=ps
2617*22dc650dSSadaf Ebrahimi    Xzz\=ps
2618*22dc650dSSadaf Ebrahimi    Xzzz\=ps
2619*22dc650dSSadaf Ebrahimi    Xzzzz\=ps
2620*22dc650dSSadaf Ebrahimi
2621*22dc650dSSadaf Ebrahimi/(Y)X\1{2,4}b/
2622*22dc650dSSadaf Ebrahimi    YX\=ps
2623*22dc650dSSadaf Ebrahimi    YXY\=ps
2624*22dc650dSSadaf Ebrahimi    YXYY\=ps
2625*22dc650dSSadaf Ebrahimi    YXYYY\=ps
2626*22dc650dSSadaf Ebrahimi    YXYYYY\=ps
2627*22dc650dSSadaf Ebrahimi
2628*22dc650dSSadaf Ebrahimi/(Y)X\1{2,4}?b/
2629*22dc650dSSadaf Ebrahimi    YX\=ps
2630*22dc650dSSadaf Ebrahimi    YXY\=ps
2631*22dc650dSSadaf Ebrahimi    YXYY\=ps
2632*22dc650dSSadaf Ebrahimi    YXYYY\=ps
2633*22dc650dSSadaf Ebrahimi    YXYYYY\=ps
2634*22dc650dSSadaf Ebrahimi
2635*22dc650dSSadaf Ebrahimi/(Y)X\1{2,4}+b/
2636*22dc650dSSadaf Ebrahimi    YX\=ps
2637*22dc650dSSadaf Ebrahimi    YXY\=ps
2638*22dc650dSSadaf Ebrahimi    YXYY\=ps
2639*22dc650dSSadaf Ebrahimi    YXYYY\=ps
2640*22dc650dSSadaf Ebrahimi    YXYYYY\=ps
2641*22dc650dSSadaf Ebrahimi
2642*22dc650dSSadaf Ebrahimi/\++\KZ|\d+X|9+Y/startchar
2643*22dc650dSSadaf Ebrahimi    ++++123999\=ps
2644*22dc650dSSadaf Ebrahimi    ++++123999Y\=ps
2645*22dc650dSSadaf Ebrahimi    ++++Z1234\=ps
2646*22dc650dSSadaf Ebrahimi
2647*22dc650dSSadaf Ebrahimi/Z(*F)/
2648*22dc650dSSadaf Ebrahimi\= Expect no match
2649*22dc650dSSadaf Ebrahimi    Z\=ps
2650*22dc650dSSadaf Ebrahimi    ZA\=ps
2651*22dc650dSSadaf Ebrahimi
2652*22dc650dSSadaf Ebrahimi/Z(?!)/
2653*22dc650dSSadaf Ebrahimi\= Expect no match
2654*22dc650dSSadaf Ebrahimi    Z\=ps
2655*22dc650dSSadaf Ebrahimi    ZA\=ps
2656*22dc650dSSadaf Ebrahimi
2657*22dc650dSSadaf Ebrahimi/dog(sbody)?/
2658*22dc650dSSadaf Ebrahimi    dogs\=ps
2659*22dc650dSSadaf Ebrahimi    dogs\=ph
2660*22dc650dSSadaf Ebrahimi
2661*22dc650dSSadaf Ebrahimi/dog(sbody)??/
2662*22dc650dSSadaf Ebrahimi    dogs\=ps
2663*22dc650dSSadaf Ebrahimi    dogs\=ph
2664*22dc650dSSadaf Ebrahimi
2665*22dc650dSSadaf Ebrahimi/dog|dogsbody/
2666*22dc650dSSadaf Ebrahimi    dogs\=ps
2667*22dc650dSSadaf Ebrahimi    dogs\=ph
2668*22dc650dSSadaf Ebrahimi
2669*22dc650dSSadaf Ebrahimi/dogsbody|dog/
2670*22dc650dSSadaf Ebrahimi    dogs\=ps
2671*22dc650dSSadaf Ebrahimi    dogs\=ph
2672*22dc650dSSadaf Ebrahimi
2673*22dc650dSSadaf Ebrahimi/\bthe cat\b/
2674*22dc650dSSadaf Ebrahimi    the cat\=ps
2675*22dc650dSSadaf Ebrahimi    the cat\=ph
2676*22dc650dSSadaf Ebrahimi
2677*22dc650dSSadaf Ebrahimi/abc/
2678*22dc650dSSadaf Ebrahimi   abc\=ps
2679*22dc650dSSadaf Ebrahimi   abc\=ph
2680*22dc650dSSadaf Ebrahimi
2681*22dc650dSSadaf Ebrahimi/abc\K123/startchar
2682*22dc650dSSadaf Ebrahimi    xyzabc123pqr
2683*22dc650dSSadaf Ebrahimi    xyzabc12\=ps
2684*22dc650dSSadaf Ebrahimi    xyzabc12\=ph
2685*22dc650dSSadaf Ebrahimi
2686*22dc650dSSadaf Ebrahimi/(?<=abc)123/
2687*22dc650dSSadaf Ebrahimi    xyzabc123pqr
2688*22dc650dSSadaf Ebrahimi    xyzabc12\=ps
2689*22dc650dSSadaf Ebrahimi    xyzabc12\=ph
2690*22dc650dSSadaf Ebrahimi
2691*22dc650dSSadaf Ebrahimi/\babc\b/
2692*22dc650dSSadaf Ebrahimi    +++abc+++
2693*22dc650dSSadaf Ebrahimi    +++ab\=ps
2694*22dc650dSSadaf Ebrahimi    +++ab\=ph
2695*22dc650dSSadaf Ebrahimi
2696*22dc650dSSadaf Ebrahimi/(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/B
2697*22dc650dSSadaf Ebrahimi
2698*22dc650dSSadaf Ebrahimi/(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/B
2699*22dc650dSSadaf Ebrahimi
2700*22dc650dSSadaf Ebrahimi/(ab)(x(y)z(cd(*ACCEPT)))pq/B
2701*22dc650dSSadaf Ebrahimi
2702*22dc650dSSadaf Ebrahimi/abc\K/aftertext,startchar
2703*22dc650dSSadaf Ebrahimi    abcdef
2704*22dc650dSSadaf Ebrahimi    abcdef\=notempty_atstart
2705*22dc650dSSadaf Ebrahimi    xyzabcdef\=notempty_atstart
2706*22dc650dSSadaf Ebrahimi\= Expect no match
2707*22dc650dSSadaf Ebrahimi    abcdef\=notempty
2708*22dc650dSSadaf Ebrahimi    xyzabcdef\=notempty
2709*22dc650dSSadaf Ebrahimi
2710*22dc650dSSadaf Ebrahimi/^(?:(?=abc)|abc\K)/aftertext,startchar
2711*22dc650dSSadaf Ebrahimi    abcdef
2712*22dc650dSSadaf Ebrahimi    abcdef\=notempty_atstart
2713*22dc650dSSadaf Ebrahimi\= Expect no match
2714*22dc650dSSadaf Ebrahimi    abcdef\=notempty
2715*22dc650dSSadaf Ebrahimi
2716*22dc650dSSadaf Ebrahimi/a?b?/aftertext
2717*22dc650dSSadaf Ebrahimi    xyz
2718*22dc650dSSadaf Ebrahimi    xyzabc
2719*22dc650dSSadaf Ebrahimi    xyzabc\=notempty
2720*22dc650dSSadaf Ebrahimi    xyzabc\=notempty_atstart
2721*22dc650dSSadaf Ebrahimi    xyz\=notempty_atstart
2722*22dc650dSSadaf Ebrahimi\= Expect no match
2723*22dc650dSSadaf Ebrahimi    xyz\=notempty
2724*22dc650dSSadaf Ebrahimi
2725*22dc650dSSadaf Ebrahimi/^a?b?/aftertext
2726*22dc650dSSadaf Ebrahimi    xyz
2727*22dc650dSSadaf Ebrahimi    xyzabc
2728*22dc650dSSadaf Ebrahimi\= Expect no match
2729*22dc650dSSadaf Ebrahimi    xyzabc\=notempty
2730*22dc650dSSadaf Ebrahimi    xyzabc\=notempty_atstart
2731*22dc650dSSadaf Ebrahimi    xyz\=notempty_atstart
2732*22dc650dSSadaf Ebrahimi    xyz\=notempty
2733*22dc650dSSadaf Ebrahimi
2734*22dc650dSSadaf Ebrahimi/^(?<name>a|b\g<name>c)/
2735*22dc650dSSadaf Ebrahimi    aaaa
2736*22dc650dSSadaf Ebrahimi    bacxxx
2737*22dc650dSSadaf Ebrahimi    bbaccxxx
2738*22dc650dSSadaf Ebrahimi    bbbacccxx
2739*22dc650dSSadaf Ebrahimi
2740*22dc650dSSadaf Ebrahimi/^(?<name>a|b\g'name'c)/
2741*22dc650dSSadaf Ebrahimi    aaaa
2742*22dc650dSSadaf Ebrahimi    bacxxx
2743*22dc650dSSadaf Ebrahimi    bbaccxxx
2744*22dc650dSSadaf Ebrahimi    bbbacccxx
2745*22dc650dSSadaf Ebrahimi
2746*22dc650dSSadaf Ebrahimi/^(a|b\g<1>c)/
2747*22dc650dSSadaf Ebrahimi    aaaa
2748*22dc650dSSadaf Ebrahimi    bacxxx
2749*22dc650dSSadaf Ebrahimi    bbaccxxx
2750*22dc650dSSadaf Ebrahimi    bbbacccxx
2751*22dc650dSSadaf Ebrahimi
2752*22dc650dSSadaf Ebrahimi/^(a|b\g'1'c)/
2753*22dc650dSSadaf Ebrahimi    aaaa
2754*22dc650dSSadaf Ebrahimi    bacxxx
2755*22dc650dSSadaf Ebrahimi    bbaccxxx
2756*22dc650dSSadaf Ebrahimi    bbbacccxx
2757*22dc650dSSadaf Ebrahimi
2758*22dc650dSSadaf Ebrahimi/^(a|b\g'-1'c)/
2759*22dc650dSSadaf Ebrahimi    aaaa
2760*22dc650dSSadaf Ebrahimi    bacxxx
2761*22dc650dSSadaf Ebrahimi    bbaccxxx
2762*22dc650dSSadaf Ebrahimi    bbbacccxx
2763*22dc650dSSadaf Ebrahimi
2764*22dc650dSSadaf Ebrahimi/(^(a|b\g<-1>c))/
2765*22dc650dSSadaf Ebrahimi    aaaa
2766*22dc650dSSadaf Ebrahimi    bacxxx
2767*22dc650dSSadaf Ebrahimi    bbaccxxx
2768*22dc650dSSadaf Ebrahimi    bbbacccxx
2769*22dc650dSSadaf Ebrahimi
2770*22dc650dSSadaf Ebrahimi/(?-i:\g<name>)(?i:(?<name>a))/
2771*22dc650dSSadaf Ebrahimi    XaaX
2772*22dc650dSSadaf Ebrahimi    XAAX
2773*22dc650dSSadaf Ebrahimi
2774*22dc650dSSadaf Ebrahimi/(?i:\g<name>)(?-i:(?<name>a))/
2775*22dc650dSSadaf Ebrahimi    XaaX
2776*22dc650dSSadaf Ebrahimi\= Expect no match
2777*22dc650dSSadaf Ebrahimi    XAAX
2778*22dc650dSSadaf Ebrahimi
2779*22dc650dSSadaf Ebrahimi/(?-i:\g<+1>)(?i:(a))/
2780*22dc650dSSadaf Ebrahimi    XaaX
2781*22dc650dSSadaf Ebrahimi    XAAX
2782*22dc650dSSadaf Ebrahimi
2783*22dc650dSSadaf Ebrahimi/(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
2784*22dc650dSSadaf Ebrahimi
2785*22dc650dSSadaf Ebrahimi/(?<n>a|b|c)\g<n>*/
2786*22dc650dSSadaf Ebrahimi   abc
2787*22dc650dSSadaf Ebrahimi   accccbbb
2788*22dc650dSSadaf Ebrahimi
2789*22dc650dSSadaf Ebrahimi/^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
2790*22dc650dSSadaf Ebrahimi    XYabcdY
2791*22dc650dSSadaf Ebrahimi
2792*22dc650dSSadaf Ebrahimi/(?<=b(?1)|zzz)(a)/
2793*22dc650dSSadaf Ebrahimi    xbaax
2794*22dc650dSSadaf Ebrahimi    xzzzax
2795*22dc650dSSadaf Ebrahimi
2796*22dc650dSSadaf Ebrahimi/(a)(?<=b\1)/
2797*22dc650dSSadaf Ebrahimi
2798*22dc650dSSadaf Ebrahimi/(a)(?<=b+(?1))/
2799*22dc650dSSadaf Ebrahimi
2800*22dc650dSSadaf Ebrahimi/(a+)(?<=b(?1))/
2801*22dc650dSSadaf Ebrahimi
2802*22dc650dSSadaf Ebrahimi/(a(?<=b(?1)))/
2803*22dc650dSSadaf Ebrahimi
2804*22dc650dSSadaf Ebrahimi/(?<=b(?1))xyz/
2805*22dc650dSSadaf Ebrahimi
2806*22dc650dSSadaf Ebrahimi/(?<=b(?1))xyz(b+)pqrstuvew/
2807*22dc650dSSadaf Ebrahimi
2808*22dc650dSSadaf Ebrahimi/(a|bc)\1/I
2809*22dc650dSSadaf Ebrahimi
2810*22dc650dSSadaf Ebrahimi/(a|bc)\1{2,3}/I
2811*22dc650dSSadaf Ebrahimi
2812*22dc650dSSadaf Ebrahimi/(a|bc)(?1)/I
2813*22dc650dSSadaf Ebrahimi
2814*22dc650dSSadaf Ebrahimi/(a|b\1)(a|b\1)/I
2815*22dc650dSSadaf Ebrahimi
2816*22dc650dSSadaf Ebrahimi/(a|b\1){2}/I
2817*22dc650dSSadaf Ebrahimi
2818*22dc650dSSadaf Ebrahimi/(a|bbbb\1)(a|bbbb\1)/I
2819*22dc650dSSadaf Ebrahimi
2820*22dc650dSSadaf Ebrahimi/(a|bbbb\1){2}/I
2821*22dc650dSSadaf Ebrahimi
2822*22dc650dSSadaf Ebrahimi/^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/I
2823*22dc650dSSadaf Ebrahimi
2824*22dc650dSSadaf Ebrahimi/<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/Iis
2825*22dc650dSSadaf Ebrahimi
2826*22dc650dSSadaf Ebrahimi"(?>.*/)foo"I
2827*22dc650dSSadaf Ebrahimi
2828*22dc650dSSadaf Ebrahimi/(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /Ix
2829*22dc650dSSadaf Ebrahimi
2830*22dc650dSSadaf Ebrahimi/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/Ii
2831*22dc650dSSadaf Ebrahimi
2832*22dc650dSSadaf Ebrahimi/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/I
2833*22dc650dSSadaf Ebrahimi
2834*22dc650dSSadaf Ebrahimi/<a[\s]+href[\s]*=[\s]*          # find <a href=
2835*22dc650dSSadaf Ebrahimi ([\"\'])?                       # find single or double quote
2836*22dc650dSSadaf Ebrahimi (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
2837*22dc650dSSadaf Ebrahimi                                 # quote, otherwise match up to next space
2838*22dc650dSSadaf Ebrahimi/Iisx
2839*22dc650dSSadaf Ebrahimi
2840*22dc650dSSadaf Ebrahimi/^(?!:)                       # colon disallowed at start
2841*22dc650dSSadaf Ebrahimi  (?:                         # start of item
2842*22dc650dSSadaf Ebrahimi    (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
2843*22dc650dSSadaf Ebrahimi    (?(1)0 | () ) )           # if null previously matched, fail; else null
2844*22dc650dSSadaf Ebrahimi    :                         # followed by colon
2845*22dc650dSSadaf Ebrahimi  ){1,7}                      # end item; 1-7 of them required
2846*22dc650dSSadaf Ebrahimi  [0-9a-f]{1,4} $             # final hex number at end of string
2847*22dc650dSSadaf Ebrahimi  (?(1)|.)                    # check that there was an empty component
2848*22dc650dSSadaf Ebrahimi  /Iix
2849*22dc650dSSadaf Ebrahimi
2850*22dc650dSSadaf Ebrahimi/(?|(?<a>A)|(?<a>B))/I
2851*22dc650dSSadaf Ebrahimi    AB\=copy=a
2852*22dc650dSSadaf Ebrahimi    BA\=copy=a
2853*22dc650dSSadaf Ebrahimi
2854*22dc650dSSadaf Ebrahimi/(?|(?<a>A)|(?<b>B))/
2855*22dc650dSSadaf Ebrahimi
2856*22dc650dSSadaf Ebrahimi/(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
2857*22dc650dSSadaf Ebrahimi    b(?<quote> (?<apostrophe>')|(?<realquote>")) )
2858*22dc650dSSadaf Ebrahimi    (?('quote')[a-z]+|[0-9]+)/Ix,dupnames
2859*22dc650dSSadaf Ebrahimi    a"aaaaa
2860*22dc650dSSadaf Ebrahimi    b"aaaaa
2861*22dc650dSSadaf Ebrahimi\= Expect no match
2862*22dc650dSSadaf Ebrahimi    b"11111
2863*22dc650dSSadaf Ebrahimi    a"11111
2864*22dc650dSSadaf Ebrahimi
2865*22dc650dSSadaf Ebrahimi/^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/IBx,dupnames
2866*22dc650dSSadaf Ebrahimi    abcdX
2867*22dc650dSSadaf Ebrahimi    eX
2868*22dc650dSSadaf Ebrahimi\= Expect no match
2869*22dc650dSSadaf Ebrahimi    abcdY
2870*22dc650dSSadaf Ebrahimi    ey
2871*22dc650dSSadaf Ebrahimi
2872*22dc650dSSadaf Ebrahimi/(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/IBx,dupnames
2873*22dc650dSSadaf Ebrahimi    abcdd
2874*22dc650dSSadaf Ebrahimi\= Expect no match
2875*22dc650dSSadaf Ebrahimi    abcdde
2876*22dc650dSSadaf Ebrahimi
2877*22dc650dSSadaf Ebrahimi/abcd*/
2878*22dc650dSSadaf Ebrahimi    xxxxabcd\=ps
2879*22dc650dSSadaf Ebrahimi    xxxxabcd\=ph
2880*22dc650dSSadaf Ebrahimi
2881*22dc650dSSadaf Ebrahimi/abcd*/i
2882*22dc650dSSadaf Ebrahimi    xxxxabcd\=ps
2883*22dc650dSSadaf Ebrahimi    xxxxabcd\=ph
2884*22dc650dSSadaf Ebrahimi    XXXXABCD\=ps
2885*22dc650dSSadaf Ebrahimi    XXXXABCD\=ph
2886*22dc650dSSadaf Ebrahimi
2887*22dc650dSSadaf Ebrahimi/abc\d*/
2888*22dc650dSSadaf Ebrahimi    xxxxabc1\=ps
2889*22dc650dSSadaf Ebrahimi    xxxxabc1\=ph
2890*22dc650dSSadaf Ebrahimi
2891*22dc650dSSadaf Ebrahimi/(a)bc\1*/
2892*22dc650dSSadaf Ebrahimi    xxxxabca\=ps
2893*22dc650dSSadaf Ebrahimi    xxxxabca\=ph
2894*22dc650dSSadaf Ebrahimi
2895*22dc650dSSadaf Ebrahimi/abc[de]*/
2896*22dc650dSSadaf Ebrahimi    xxxxabcde\=ps
2897*22dc650dSSadaf Ebrahimi    xxxxabcde\=ph
2898*22dc650dSSadaf Ebrahimi
2899*22dc650dSSadaf Ebrahimi/(\3)(\1)(a)/allow_empty_class,match_unset_backref,dupnames
2900*22dc650dSSadaf Ebrahimi    cat
2901*22dc650dSSadaf Ebrahimi
2902*22dc650dSSadaf Ebrahimi/(\3)(\1)(a)/I,allow_empty_class,match_unset_backref,dupnames
2903*22dc650dSSadaf Ebrahimi    cat
2904*22dc650dSSadaf Ebrahimi
2905*22dc650dSSadaf Ebrahimi/(\3)(\1)(a)/I
2906*22dc650dSSadaf Ebrahimi\= Expect no match
2907*22dc650dSSadaf Ebrahimi    cat
2908*22dc650dSSadaf Ebrahimi
2909*22dc650dSSadaf Ebrahimi/i(?(DEFINE)(?<s>a))/I
2910*22dc650dSSadaf Ebrahimi    i
2911*22dc650dSSadaf Ebrahimi
2912*22dc650dSSadaf Ebrahimi/()i(?(1)a)/I
2913*22dc650dSSadaf Ebrahimi    ia
2914*22dc650dSSadaf Ebrahimi
2915*22dc650dSSadaf Ebrahimi/(?i)a(?-i)b|c/B
2916*22dc650dSSadaf Ebrahimi    XabX
2917*22dc650dSSadaf Ebrahimi    XAbX
2918*22dc650dSSadaf Ebrahimi    CcC
2919*22dc650dSSadaf Ebrahimi\= Expect no match
2920*22dc650dSSadaf Ebrahimi    XABX
2921*22dc650dSSadaf Ebrahimi
2922*22dc650dSSadaf Ebrahimi/(?i)a(?s)b|c/B
2923*22dc650dSSadaf Ebrahimi
2924*22dc650dSSadaf Ebrahimi/(?i)a(?s-i)b|c/B
2925*22dc650dSSadaf Ebrahimi
2926*22dc650dSSadaf Ebrahimi/^(ab(c\1)d|x){2}$/B
2927*22dc650dSSadaf Ebrahimi    xabcxd
2928*22dc650dSSadaf Ebrahimi
2929*22dc650dSSadaf Ebrahimi/^(?&t)*+(?(DEFINE)(?<t>.))$/B
2930*22dc650dSSadaf Ebrahimi
2931*22dc650dSSadaf Ebrahimi/^(?&t)*(?(DEFINE)(?<t>.))$/B
2932*22dc650dSSadaf Ebrahimi
2933*22dc650dSSadaf Ebrahimi# This one is here because Perl gives the match as "b" rather than "ab". I
2934*22dc650dSSadaf Ebrahimi# believe this to be a Perl bug.
2935*22dc650dSSadaf Ebrahimi
2936*22dc650dSSadaf Ebrahimi/(?>a\Kb)z|(ab)/
2937*22dc650dSSadaf Ebrahimi    ab\=startchar
2938*22dc650dSSadaf Ebrahimi
2939*22dc650dSSadaf Ebrahimi/(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
2940*22dc650dSSadaf Ebrahimi    abcd
2941*22dc650dSSadaf Ebrahimi    0abc
2942*22dc650dSSadaf Ebrahimi
2943*22dc650dSSadaf Ebrahimi/abc(*MARK:)pqr/
2944*22dc650dSSadaf Ebrahimi
2945*22dc650dSSadaf Ebrahimi/abc(*:)pqr/
2946*22dc650dSSadaf Ebrahimi
2947*22dc650dSSadaf Ebrahimi/(*COMMIT:X)/B
2948*22dc650dSSadaf Ebrahimi
2949*22dc650dSSadaf Ebrahimi# This should, and does, fail. In Perl, it does not, which I think is a
2950*22dc650dSSadaf Ebrahimi# bug because replacing the B in the pattern by (B|D) does make it fail.
2951*22dc650dSSadaf Ebrahimi# Turning off Perl's optimization by inserting (??{""}) also makes it fail.
2952*22dc650dSSadaf Ebrahimi
2953*22dc650dSSadaf Ebrahimi/A(*COMMIT)B/aftertext,mark
2954*22dc650dSSadaf Ebrahimi\= Expect no match
2955*22dc650dSSadaf Ebrahimi    ACABX
2956*22dc650dSSadaf Ebrahimi
2957*22dc650dSSadaf Ebrahimi# These should be different, but in Perl they are not, which I think
2958*22dc650dSSadaf Ebrahimi# is a bug in Perl.
2959*22dc650dSSadaf Ebrahimi
2960*22dc650dSSadaf Ebrahimi/A(*THEN)B|A(*THEN)C/mark
2961*22dc650dSSadaf Ebrahimi    AC
2962*22dc650dSSadaf Ebrahimi
2963*22dc650dSSadaf Ebrahimi/A(*PRUNE)B|A(*PRUNE)C/mark
2964*22dc650dSSadaf Ebrahimi\= Expect no match
2965*22dc650dSSadaf Ebrahimi    AC
2966*22dc650dSSadaf Ebrahimi
2967*22dc650dSSadaf Ebrahimi# Mark names can be duplicated. Perl doesn't give a mark for this one,
2968*22dc650dSSadaf Ebrahimi# though PCRE2 does.
2969*22dc650dSSadaf Ebrahimi
2970*22dc650dSSadaf Ebrahimi/^A(*:A)B|^X(*:A)Y/mark
2971*22dc650dSSadaf Ebrahimi\= Expect no match
2972*22dc650dSSadaf Ebrahimi    XAQQ
2973*22dc650dSSadaf Ebrahimi
2974*22dc650dSSadaf Ebrahimi# COMMIT at the start of a pattern should be the same as an anchor. Perl
2975*22dc650dSSadaf Ebrahimi# optimizations defeat this. So does the PCRE2 optimization unless we disable
2976*22dc650dSSadaf Ebrahimi# it.
2977*22dc650dSSadaf Ebrahimi
2978*22dc650dSSadaf Ebrahimi/(*COMMIT)ABC/
2979*22dc650dSSadaf Ebrahimi    ABCDEFG
2980*22dc650dSSadaf Ebrahimi
2981*22dc650dSSadaf Ebrahimi/(*COMMIT)ABC/no_start_optimize
2982*22dc650dSSadaf Ebrahimi\= Expect no match
2983*22dc650dSSadaf Ebrahimi    DEFGABC
2984*22dc650dSSadaf Ebrahimi
2985*22dc650dSSadaf Ebrahimi/^(ab (c+(*THEN)cd) | xyz)/x
2986*22dc650dSSadaf Ebrahimi\= Expect no match
2987*22dc650dSSadaf Ebrahimi    abcccd
2988*22dc650dSSadaf Ebrahimi
2989*22dc650dSSadaf Ebrahimi/^(ab (c+(*PRUNE)cd) | xyz)/x
2990*22dc650dSSadaf Ebrahimi\= Expect no match
2991*22dc650dSSadaf Ebrahimi    abcccd
2992*22dc650dSSadaf Ebrahimi
2993*22dc650dSSadaf Ebrahimi/^(ab (c+(*FAIL)cd) | xyz)/x
2994*22dc650dSSadaf Ebrahimi\= Expect no match
2995*22dc650dSSadaf Ebrahimi    abcccd
2996*22dc650dSSadaf Ebrahimi
2997*22dc650dSSadaf Ebrahimi# Perl gets some of these wrong
2998*22dc650dSSadaf Ebrahimi
2999*22dc650dSSadaf Ebrahimi/(?>.(*ACCEPT))*?5/
3000*22dc650dSSadaf Ebrahimi    abcde
3001*22dc650dSSadaf Ebrahimi
3002*22dc650dSSadaf Ebrahimi/(.(*ACCEPT))*?5/
3003*22dc650dSSadaf Ebrahimi    abcde
3004*22dc650dSSadaf Ebrahimi
3005*22dc650dSSadaf Ebrahimi/(.(*ACCEPT))5/
3006*22dc650dSSadaf Ebrahimi    abcde
3007*22dc650dSSadaf Ebrahimi
3008*22dc650dSSadaf Ebrahimi/(.(*ACCEPT))*5/
3009*22dc650dSSadaf Ebrahimi    abcde
3010*22dc650dSSadaf Ebrahimi
3011*22dc650dSSadaf Ebrahimi/A\NB./B
3012*22dc650dSSadaf Ebrahimi    ACBD
3013*22dc650dSSadaf Ebrahimi\= Expect no match
3014*22dc650dSSadaf Ebrahimi    A\nB
3015*22dc650dSSadaf Ebrahimi    ACB\n
3016*22dc650dSSadaf Ebrahimi
3017*22dc650dSSadaf Ebrahimi/A\NB./Bs
3018*22dc650dSSadaf Ebrahimi    ACBD
3019*22dc650dSSadaf Ebrahimi    ACB\n
3020*22dc650dSSadaf Ebrahimi\= Expect no match
3021*22dc650dSSadaf Ebrahimi    A\nB
3022*22dc650dSSadaf Ebrahimi
3023*22dc650dSSadaf Ebrahimi/A\NB/newline=crlf
3024*22dc650dSSadaf Ebrahimi    A\nB
3025*22dc650dSSadaf Ebrahimi    A\rB
3026*22dc650dSSadaf Ebrahimi\= Expect no match
3027*22dc650dSSadaf Ebrahimi    A\r\nB
3028*22dc650dSSadaf Ebrahimi
3029*22dc650dSSadaf Ebrahimi/\R+b/B
3030*22dc650dSSadaf Ebrahimi
3031*22dc650dSSadaf Ebrahimi/\R+\n/B
3032*22dc650dSSadaf Ebrahimi
3033*22dc650dSSadaf Ebrahimi/\R+\d/B
3034*22dc650dSSadaf Ebrahimi
3035*22dc650dSSadaf Ebrahimi/\d*\R/B
3036*22dc650dSSadaf Ebrahimi
3037*22dc650dSSadaf Ebrahimi/\s*\R/B
3038*22dc650dSSadaf Ebrahimi    \x20\x0a
3039*22dc650dSSadaf Ebrahimi    \x20\x0d
3040*22dc650dSSadaf Ebrahimi    \x20\x0d\x0a
3041*22dc650dSSadaf Ebrahimi
3042*22dc650dSSadaf Ebrahimi/\S*\R/B
3043*22dc650dSSadaf Ebrahimi    a\x0a
3044*22dc650dSSadaf Ebrahimi
3045*22dc650dSSadaf Ebrahimi/X\h*\R/B
3046*22dc650dSSadaf Ebrahimi    X\x20\x0a
3047*22dc650dSSadaf Ebrahimi
3048*22dc650dSSadaf Ebrahimi/X\H*\R/B
3049*22dc650dSSadaf Ebrahimi    X\x0d\x0a
3050*22dc650dSSadaf Ebrahimi
3051*22dc650dSSadaf Ebrahimi/X\H+\R/B
3052*22dc650dSSadaf Ebrahimi    X\x0d\x0a
3053*22dc650dSSadaf Ebrahimi
3054*22dc650dSSadaf Ebrahimi/X\H++\R/B
3055*22dc650dSSadaf Ebrahimi\= Expect no match
3056*22dc650dSSadaf Ebrahimi    X\x0d\x0a
3057*22dc650dSSadaf Ebrahimi
3058*22dc650dSSadaf Ebrahimi/(?<=abc)def/
3059*22dc650dSSadaf Ebrahimi    abc\=ph
3060*22dc650dSSadaf Ebrahimi
3061*22dc650dSSadaf Ebrahimi/abc$/
3062*22dc650dSSadaf Ebrahimi    abc
3063*22dc650dSSadaf Ebrahimi    abc\=ps
3064*22dc650dSSadaf Ebrahimi    abc\=ph
3065*22dc650dSSadaf Ebrahimi
3066*22dc650dSSadaf Ebrahimi/abc$/m
3067*22dc650dSSadaf Ebrahimi    abc
3068*22dc650dSSadaf Ebrahimi    abc\n
3069*22dc650dSSadaf Ebrahimi    abc\=ph
3070*22dc650dSSadaf Ebrahimi    abc\n\=ph
3071*22dc650dSSadaf Ebrahimi    abc\=ps
3072*22dc650dSSadaf Ebrahimi    abc\n\=ps
3073*22dc650dSSadaf Ebrahimi
3074*22dc650dSSadaf Ebrahimi/abc\z/
3075*22dc650dSSadaf Ebrahimi    abc
3076*22dc650dSSadaf Ebrahimi    abc\=ps
3077*22dc650dSSadaf Ebrahimi    abc\=ph
3078*22dc650dSSadaf Ebrahimi
3079*22dc650dSSadaf Ebrahimi/abc\Z/
3080*22dc650dSSadaf Ebrahimi    abc
3081*22dc650dSSadaf Ebrahimi    abc\=ps
3082*22dc650dSSadaf Ebrahimi    abc\=ph
3083*22dc650dSSadaf Ebrahimi
3084*22dc650dSSadaf Ebrahimi/abc\b/
3085*22dc650dSSadaf Ebrahimi    abc
3086*22dc650dSSadaf Ebrahimi    abc\=ps
3087*22dc650dSSadaf Ebrahimi    abc\=ph
3088*22dc650dSSadaf Ebrahimi
3089*22dc650dSSadaf Ebrahimi/abc\B/
3090*22dc650dSSadaf Ebrahimi    abc\=ps
3091*22dc650dSSadaf Ebrahimi    abc\=ph
3092*22dc650dSSadaf Ebrahimi\= Expect no match
3093*22dc650dSSadaf Ebrahimi    abc
3094*22dc650dSSadaf Ebrahimi
3095*22dc650dSSadaf Ebrahimi/.+/
3096*22dc650dSSadaf Ebrahimi\= Bad offsets
3097*22dc650dSSadaf Ebrahimi    abc\=offset=4
3098*22dc650dSSadaf Ebrahimi    abc\=offset=-4
3099*22dc650dSSadaf Ebrahimi\= Valid data
3100*22dc650dSSadaf Ebrahimi    abc\=offset=0
3101*22dc650dSSadaf Ebrahimi    abc\=offset=1
3102*22dc650dSSadaf Ebrahimi    abc\=offset=2
3103*22dc650dSSadaf Ebrahimi\= Expect no match
3104*22dc650dSSadaf Ebrahimi    abc\=offset=3
3105*22dc650dSSadaf Ebrahimi
3106*22dc650dSSadaf Ebrahimi/^\cģ/
3107*22dc650dSSadaf Ebrahimi
3108*22dc650dSSadaf Ebrahimi/(?P<abn>(?P=abn)xxx)/B
3109*22dc650dSSadaf Ebrahimi
3110*22dc650dSSadaf Ebrahimi/(a\1z)/B
3111*22dc650dSSadaf Ebrahimi
3112*22dc650dSSadaf Ebrahimi/(?P<abn>(?P=abn)(?<badstufxxx)/B
3113*22dc650dSSadaf Ebrahimi
3114*22dc650dSSadaf Ebrahimi/(?P<abn>(?P=axn)xxx)/B
3115*22dc650dSSadaf Ebrahimi
3116*22dc650dSSadaf Ebrahimi/(?P<abn>(?P=axn)xxx)(?<axn>yy)/B
3117*22dc650dSSadaf Ebrahimi
3118*22dc650dSSadaf Ebrahimi# These tests are here because Perl gets the first one wrong.
3119*22dc650dSSadaf Ebrahimi
3120*22dc650dSSadaf Ebrahimi/(\R*)(.)/s
3121*22dc650dSSadaf Ebrahimi    \r\n
3122*22dc650dSSadaf Ebrahimi    \r\r\n\n\r
3123*22dc650dSSadaf Ebrahimi    \r\r\n\n\r\n
3124*22dc650dSSadaf Ebrahimi
3125*22dc650dSSadaf Ebrahimi/(\R)*(.)/s
3126*22dc650dSSadaf Ebrahimi    \r\n
3127*22dc650dSSadaf Ebrahimi    \r\r\n\n\r
3128*22dc650dSSadaf Ebrahimi    \r\r\n\n\r\n
3129*22dc650dSSadaf Ebrahimi
3130*22dc650dSSadaf Ebrahimi/((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
3131*22dc650dSSadaf Ebrahimi    \r\n
3132*22dc650dSSadaf Ebrahimi    \r\r\n\n\r
3133*22dc650dSSadaf Ebrahimi    \r\r\n\n\r\n
3134*22dc650dSSadaf Ebrahimi
3135*22dc650dSSadaf Ebrahimi# -------------
3136*22dc650dSSadaf Ebrahimi
3137*22dc650dSSadaf Ebrahimi/^abc$/B
3138*22dc650dSSadaf Ebrahimi
3139*22dc650dSSadaf Ebrahimi/^abc$/Bm
3140*22dc650dSSadaf Ebrahimi
3141*22dc650dSSadaf Ebrahimi/^(a)*+(\w)/
3142*22dc650dSSadaf Ebrahimi    aaaaX
3143*22dc650dSSadaf Ebrahimi\= Expect no match
3144*22dc650dSSadaf Ebrahimi    aaaa
3145*22dc650dSSadaf Ebrahimi
3146*22dc650dSSadaf Ebrahimi/^(?:a)*+(\w)/
3147*22dc650dSSadaf Ebrahimi    aaaaX
3148*22dc650dSSadaf Ebrahimi\= Expect no match
3149*22dc650dSSadaf Ebrahimi    aaaa
3150*22dc650dSSadaf Ebrahimi
3151*22dc650dSSadaf Ebrahimi/(a)++1234/IB
3152*22dc650dSSadaf Ebrahimi
3153*22dc650dSSadaf Ebrahimi/([abc])++1234/I
3154*22dc650dSSadaf Ebrahimi
3155*22dc650dSSadaf Ebrahimi/(?<=(abc)+)X/
3156*22dc650dSSadaf Ebrahimi
3157*22dc650dSSadaf Ebrahimi/(^ab)/I
3158*22dc650dSSadaf Ebrahimi
3159*22dc650dSSadaf Ebrahimi/(^ab)++/I
3160*22dc650dSSadaf Ebrahimi
3161*22dc650dSSadaf Ebrahimi/(^ab|^)+/I
3162*22dc650dSSadaf Ebrahimi
3163*22dc650dSSadaf Ebrahimi/(^ab|^)++/I
3164*22dc650dSSadaf Ebrahimi
3165*22dc650dSSadaf Ebrahimi/(?:^ab)/I
3166*22dc650dSSadaf Ebrahimi
3167*22dc650dSSadaf Ebrahimi/(?:^ab)++/I
3168*22dc650dSSadaf Ebrahimi
3169*22dc650dSSadaf Ebrahimi/(?:^ab|^)+/I
3170*22dc650dSSadaf Ebrahimi
3171*22dc650dSSadaf Ebrahimi/(?:^ab|^)++/I
3172*22dc650dSSadaf Ebrahimi
3173*22dc650dSSadaf Ebrahimi/(.*ab)/I
3174*22dc650dSSadaf Ebrahimi
3175*22dc650dSSadaf Ebrahimi/(.*ab)++/I
3176*22dc650dSSadaf Ebrahimi
3177*22dc650dSSadaf Ebrahimi/(.*ab|.*)+/I
3178*22dc650dSSadaf Ebrahimi
3179*22dc650dSSadaf Ebrahimi/(.*ab|.*)++/I
3180*22dc650dSSadaf Ebrahimi
3181*22dc650dSSadaf Ebrahimi/(?:.*ab)/I
3182*22dc650dSSadaf Ebrahimi
3183*22dc650dSSadaf Ebrahimi/(?:.*ab)++/I
3184*22dc650dSSadaf Ebrahimi
3185*22dc650dSSadaf Ebrahimi/(?:.*ab|.*)+/I
3186*22dc650dSSadaf Ebrahimi
3187*22dc650dSSadaf Ebrahimi/(?:.*ab|.*)++/I
3188*22dc650dSSadaf Ebrahimi
3189*22dc650dSSadaf Ebrahimi/(?=a)[bcd]/I
3190*22dc650dSSadaf Ebrahimi
3191*22dc650dSSadaf Ebrahimi/((?=a))[bcd]/I
3192*22dc650dSSadaf Ebrahimi
3193*22dc650dSSadaf Ebrahimi/((?=a))+[bcd]/I
3194*22dc650dSSadaf Ebrahimi
3195*22dc650dSSadaf Ebrahimi/((?=a))++[bcd]/I
3196*22dc650dSSadaf Ebrahimi
3197*22dc650dSSadaf Ebrahimi/(?=a+)[bcd]/Ii
3198*22dc650dSSadaf Ebrahimi
3199*22dc650dSSadaf Ebrahimi/(?=a+?)[bcd]/Ii
3200*22dc650dSSadaf Ebrahimi
3201*22dc650dSSadaf Ebrahimi/(?=a++)[bcd]/Ii
3202*22dc650dSSadaf Ebrahimi
3203*22dc650dSSadaf Ebrahimi/(?=a{3})[bcd]/Ii
3204*22dc650dSSadaf Ebrahimi
3205*22dc650dSSadaf Ebrahimi/(abc)\1+/
3206*22dc650dSSadaf Ebrahimi
3207*22dc650dSSadaf Ebrahimi# Perl doesn't get these right IMO (the 3rd is PCRE2-specific)
3208*22dc650dSSadaf Ebrahimi
3209*22dc650dSSadaf Ebrahimi/(?1)(?:(b(*ACCEPT))){0}/
3210*22dc650dSSadaf Ebrahimi    b
3211*22dc650dSSadaf Ebrahimi
3212*22dc650dSSadaf Ebrahimi/(?1)(?:(b(*ACCEPT))){0}c/
3213*22dc650dSSadaf Ebrahimi    bc
3214*22dc650dSSadaf Ebrahimi\= Expect no match
3215*22dc650dSSadaf Ebrahimi    b
3216*22dc650dSSadaf Ebrahimi
3217*22dc650dSSadaf Ebrahimi/(?1)(?:((*ACCEPT))){0}c/
3218*22dc650dSSadaf Ebrahimi    c
3219*22dc650dSSadaf Ebrahimi    c\=notempty
3220*22dc650dSSadaf Ebrahimi
3221*22dc650dSSadaf Ebrahimi/^.*?(?(?=a)a|b(*THEN)c)/
3222*22dc650dSSadaf Ebrahimi\= Expect no match
3223*22dc650dSSadaf Ebrahimi    ba
3224*22dc650dSSadaf Ebrahimi
3225*22dc650dSSadaf Ebrahimi/^.*?(?(?=a)a|bc)/
3226*22dc650dSSadaf Ebrahimi    ba
3227*22dc650dSSadaf Ebrahimi
3228*22dc650dSSadaf Ebrahimi/^.*?(?(?=a)a(*THEN)b|c)/
3229*22dc650dSSadaf Ebrahimi\= Expect no match
3230*22dc650dSSadaf Ebrahimi    ac
3231*22dc650dSSadaf Ebrahimi
3232*22dc650dSSadaf Ebrahimi/^.*?(?(?=a)a(*THEN)b)c/
3233*22dc650dSSadaf Ebrahimi\= Expect no match
3234*22dc650dSSadaf Ebrahimi    ac
3235*22dc650dSSadaf Ebrahimi
3236*22dc650dSSadaf Ebrahimi/^.*?(a(*THEN)b)c/
3237*22dc650dSSadaf Ebrahimi\= Expect no match
3238*22dc650dSSadaf Ebrahimi    aabc
3239*22dc650dSSadaf Ebrahimi
3240*22dc650dSSadaf Ebrahimi/^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
3241*22dc650dSSadaf Ebrahimi    aabc
3242*22dc650dSSadaf Ebrahimi
3243*22dc650dSSadaf Ebrahimi/^.*?(a(*THEN)b|z)c/
3244*22dc650dSSadaf Ebrahimi    aabc
3245*22dc650dSSadaf Ebrahimi
3246*22dc650dSSadaf Ebrahimi/^.*?(z|a(*THEN)b)c/
3247*22dc650dSSadaf Ebrahimi    aabc
3248*22dc650dSSadaf Ebrahimi
3249*22dc650dSSadaf Ebrahimi# These are here because they are not Perl-compatible; the studying means the
3250*22dc650dSSadaf Ebrahimi# mark is not seen.
3251*22dc650dSSadaf Ebrahimi
3252*22dc650dSSadaf Ebrahimi/(*MARK:A)(*SKIP:B)(C|X)/mark
3253*22dc650dSSadaf Ebrahimi    C
3254*22dc650dSSadaf Ebrahimi\= Expect no match
3255*22dc650dSSadaf Ebrahimi    D
3256*22dc650dSSadaf Ebrahimi
3257*22dc650dSSadaf Ebrahimi/(*:A)A+(*SKIP:A)(B|Z)/mark
3258*22dc650dSSadaf Ebrahimi\= Expect no match
3259*22dc650dSSadaf Ebrahimi    AAAC
3260*22dc650dSSadaf Ebrahimi
3261*22dc650dSSadaf Ebrahimi# ----------------------------
3262*22dc650dSSadaf Ebrahimi
3263*22dc650dSSadaf Ebrahimi"(?=a*(*ACCEPT)b)c"
3264*22dc650dSSadaf Ebrahimi    c
3265*22dc650dSSadaf Ebrahimi    c\=notempty
3266*22dc650dSSadaf Ebrahimi
3267*22dc650dSSadaf Ebrahimi/(?1)c(?(DEFINE)((*ACCEPT)b))/
3268*22dc650dSSadaf Ebrahimi    c
3269*22dc650dSSadaf Ebrahimi    c\=notempty
3270*22dc650dSSadaf Ebrahimi
3271*22dc650dSSadaf Ebrahimi/(?>(*ACCEPT)b)c/
3272*22dc650dSSadaf Ebrahimi    c
3273*22dc650dSSadaf Ebrahimi\= Expect no match
3274*22dc650dSSadaf Ebrahimi    c\=notempty
3275*22dc650dSSadaf Ebrahimi
3276*22dc650dSSadaf Ebrahimi/(?:(?>(a)))+a%/allaftertext
3277*22dc650dSSadaf Ebrahimi    %aa%
3278*22dc650dSSadaf Ebrahimi
3279*22dc650dSSadaf Ebrahimi/(a)b|ac/allaftertext
3280*22dc650dSSadaf Ebrahimi    ac\=ovector=1
3281*22dc650dSSadaf Ebrahimi
3282*22dc650dSSadaf Ebrahimi/(a)(b)x|abc/allaftertext
3283*22dc650dSSadaf Ebrahimi     abc\=ovector=2
3284*22dc650dSSadaf Ebrahimi
3285*22dc650dSSadaf Ebrahimi/(a)bc|(a)(b)\2/
3286*22dc650dSSadaf Ebrahimi    abc\=ovector=1
3287*22dc650dSSadaf Ebrahimi    abc\=ovector=2
3288*22dc650dSSadaf Ebrahimi    aba\=ovector=1
3289*22dc650dSSadaf Ebrahimi    aba\=ovector=2
3290*22dc650dSSadaf Ebrahimi    aba\=ovector=3
3291*22dc650dSSadaf Ebrahimi    aba\=ovector=4
3292*22dc650dSSadaf Ebrahimi
3293*22dc650dSSadaf Ebrahimi/(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/I
3294*22dc650dSSadaf Ebrahimi
3295*22dc650dSSadaf Ebrahimi/(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/I
3296*22dc650dSSadaf Ebrahimi
3297*22dc650dSSadaf Ebrahimi/(a(?2)|b)(b(?1)|a)(?1)(?2)/I
3298*22dc650dSSadaf Ebrahimi
3299*22dc650dSSadaf Ebrahimi/(abc)(?1)/I
3300*22dc650dSSadaf Ebrahimi
3301*22dc650dSSadaf Ebrahimi/(?:(foo)|(bar)|(baz))X/allcaptures
3302*22dc650dSSadaf Ebrahimi    bazfooX
3303*22dc650dSSadaf Ebrahimi    foobazbarX
3304*22dc650dSSadaf Ebrahimi    barfooX
3305*22dc650dSSadaf Ebrahimi    bazX
3306*22dc650dSSadaf Ebrahimi    foobarbazX
3307*22dc650dSSadaf Ebrahimi    bazfooX\=ovector=0
3308*22dc650dSSadaf Ebrahimi    bazfooX\=ovector=1
3309*22dc650dSSadaf Ebrahimi    bazfooX\=ovector=2
3310*22dc650dSSadaf Ebrahimi    bazfooX\=ovector=3
3311*22dc650dSSadaf Ebrahimi
3312*22dc650dSSadaf Ebrahimi/(?=abc){3}abc/B
3313*22dc650dSSadaf Ebrahimi
3314*22dc650dSSadaf Ebrahimi/(?=abc)+abc/B
3315*22dc650dSSadaf Ebrahimi
3316*22dc650dSSadaf Ebrahimi/(?=abc)++abc/B
3317*22dc650dSSadaf Ebrahimi
3318*22dc650dSSadaf Ebrahimi/(?=abc){0}xyz/B
3319*22dc650dSSadaf Ebrahimi
3320*22dc650dSSadaf Ebrahimi/(?=(a))?./B
3321*22dc650dSSadaf Ebrahimi
3322*22dc650dSSadaf Ebrahimi/(?=(a))??./B
3323*22dc650dSSadaf Ebrahimi
3324*22dc650dSSadaf Ebrahimi/^(?=(a)){0}b(?1)/B
3325*22dc650dSSadaf Ebrahimi
3326*22dc650dSSadaf Ebrahimi/(?(DEFINE)(a))?b(?1)/B
3327*22dc650dSSadaf Ebrahimi
3328*22dc650dSSadaf Ebrahimi/^(?=(?1))?[az]([abc])d/B
3329*22dc650dSSadaf Ebrahimi
3330*22dc650dSSadaf Ebrahimi/^(?!a){0}\w+/B
3331*22dc650dSSadaf Ebrahimi
3332*22dc650dSSadaf Ebrahimi/(?<=(abc))?xyz/B
3333*22dc650dSSadaf Ebrahimi
3334*22dc650dSSadaf Ebrahimi/[:a[:abc]b:]/B
3335*22dc650dSSadaf Ebrahimi
3336*22dc650dSSadaf Ebrahimi/^(a(*:A)(d|e(*:B))z|aeq)/auto_callout
3337*22dc650dSSadaf Ebrahimi    adz
3338*22dc650dSSadaf Ebrahimi    aez
3339*22dc650dSSadaf Ebrahimi    aeqwerty
3340*22dc650dSSadaf Ebrahimi
3341*22dc650dSSadaf Ebrahimi/.(*F)/
3342*22dc650dSSadaf Ebrahimi\= Expect no match
3343*22dc650dSSadaf Ebrahimi    abc\=ph
3344*22dc650dSSadaf Ebrahimi
3345*22dc650dSSadaf Ebrahimi/\btype\b\W*?\btext\b\W*?\bjavascript\b/I
3346*22dc650dSSadaf Ebrahimi
3347*22dc650dSSadaf Ebrahimi/\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/I
3348*22dc650dSSadaf Ebrahimi
3349*22dc650dSSadaf Ebrahimi/a(*SKIP)c|b(*ACCEPT)|/I,aftertext
3350*22dc650dSSadaf Ebrahimi    a
3351*22dc650dSSadaf Ebrahimi
3352*22dc650dSSadaf Ebrahimi/a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/I
3353*22dc650dSSadaf Ebrahimi    ax
3354*22dc650dSSadaf Ebrahimi
3355*22dc650dSSadaf Ebrahimi'a*(*ACCEPT)b'aftertext
3356*22dc650dSSadaf Ebrahimi    abc\=notempty_atstart
3357*22dc650dSSadaf Ebrahimi    bbb\=notempty_atstart
3358*22dc650dSSadaf Ebrahimi\= Expect no match
3359*22dc650dSSadaf Ebrahimi    \=notempty_atstart
3360*22dc650dSSadaf Ebrahimi
3361*22dc650dSSadaf Ebrahimi/(*ACCEPT)a/I,aftertext
3362*22dc650dSSadaf Ebrahimi    bax
3363*22dc650dSSadaf Ebrahimi
3364*22dc650dSSadaf Ebrahimi/z(*ACCEPT)a/I,aftertext
3365*22dc650dSSadaf Ebrahimi    baxzbx
3366*22dc650dSSadaf Ebrahimi
3367*22dc650dSSadaf Ebrahimi/^(?>a+)(?>(z+))\w/B
3368*22dc650dSSadaf Ebrahimi    aaaazzzzb
3369*22dc650dSSadaf Ebrahimi\= Expect no match
3370*22dc650dSSadaf Ebrahimi    aazz
3371*22dc650dSSadaf Ebrahimi
3372*22dc650dSSadaf Ebrahimi/(.)(\1|a(?2))/
3373*22dc650dSSadaf Ebrahimi    bab
3374*22dc650dSSadaf Ebrahimi
3375*22dc650dSSadaf Ebrahimi/\1|(.)(?R)\1/
3376*22dc650dSSadaf Ebrahimi    cbbbc
3377*22dc650dSSadaf Ebrahimi
3378*22dc650dSSadaf Ebrahimi/(.)((?(1)c|a)|a(?2))/
3379*22dc650dSSadaf Ebrahimi\= Expect no match
3380*22dc650dSSadaf Ebrahimi    baa
3381*22dc650dSSadaf Ebrahimi
3382*22dc650dSSadaf Ebrahimi/(?P<abn>(?P=abn)xxx)/B
3383*22dc650dSSadaf Ebrahimi
3384*22dc650dSSadaf Ebrahimi/(a\1z)/B
3385*22dc650dSSadaf Ebrahimi
3386*22dc650dSSadaf Ebrahimi/^a\x41z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
3387*22dc650dSSadaf Ebrahimi    aAz
3388*22dc650dSSadaf Ebrahimi\= Expect no match
3389*22dc650dSSadaf Ebrahimi    ax41z
3390*22dc650dSSadaf Ebrahimi
3391*22dc650dSSadaf Ebrahimi/^a[m\x41]z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
3392*22dc650dSSadaf Ebrahimi    aAz
3393*22dc650dSSadaf Ebrahimi
3394*22dc650dSSadaf Ebrahimi/^a\x1z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
3395*22dc650dSSadaf Ebrahimi    ax1z
3396*22dc650dSSadaf Ebrahimi
3397*22dc650dSSadaf Ebrahimi/^a\u0041z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
3398*22dc650dSSadaf Ebrahimi    aAz
3399*22dc650dSSadaf Ebrahimi\= Expect no match
3400*22dc650dSSadaf Ebrahimi    au0041z
3401*22dc650dSSadaf Ebrahimi
3402*22dc650dSSadaf Ebrahimi/^a[m\u0041]z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
3403*22dc650dSSadaf Ebrahimi    aAz
3404*22dc650dSSadaf Ebrahimi
3405*22dc650dSSadaf Ebrahimi/^a\u041z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
3406*22dc650dSSadaf Ebrahimi    au041z
3407*22dc650dSSadaf Ebrahimi\= Expect no match
3408*22dc650dSSadaf Ebrahimi    aAz
3409*22dc650dSSadaf Ebrahimi
3410*22dc650dSSadaf Ebrahimi/^a\U0041z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
3411*22dc650dSSadaf Ebrahimi    aU0041z
3412*22dc650dSSadaf Ebrahimi\= Expect no match
3413*22dc650dSSadaf Ebrahimi    aAz
3414*22dc650dSSadaf Ebrahimi
3415*22dc650dSSadaf Ebrahimi/^\u{7a}/alt_bsux
3416*22dc650dSSadaf Ebrahimi    u{7a}
3417*22dc650dSSadaf Ebrahimi\= Expect no match
3418*22dc650dSSadaf Ebrahimi    zoo
3419*22dc650dSSadaf Ebrahimi
3420*22dc650dSSadaf Ebrahimi/^\u{7a}/extra_alt_bsux
3421*22dc650dSSadaf Ebrahimi    zoo
3422*22dc650dSSadaf Ebrahimi
3423*22dc650dSSadaf Ebrahimi/\u{}/extra_alt_bsux
3424*22dc650dSSadaf Ebrahimi    u{}
3425*22dc650dSSadaf Ebrahimi
3426*22dc650dSSadaf Ebrahimi/\u{Q12}/extra_alt_bsux
3427*22dc650dSSadaf Ebrahimi    --u{Q12}--
3428*22dc650dSSadaf Ebrahimi
3429*22dc650dSSadaf Ebrahimi/\u{ 12}/extra_alt_bsux
3430*22dc650dSSadaf Ebrahimi    --u{ 12}--
3431*22dc650dSSadaf Ebrahimi
3432*22dc650dSSadaf Ebrahimi/\u{{3}}/extra_alt_bsux
3433*22dc650dSSadaf Ebrahimi    --u{{{}--
3434*22dc650dSSadaf Ebrahimi
3435*22dc650dSSadaf Ebrahimi/(?(?=c)c|d)++Y/B
3436*22dc650dSSadaf Ebrahimi
3437*22dc650dSSadaf Ebrahimi/(?(?=c)c|d)*+Y/B
3438*22dc650dSSadaf Ebrahimi
3439*22dc650dSSadaf Ebrahimi/a[\NB]c/
3440*22dc650dSSadaf Ebrahimi    aNc
3441*22dc650dSSadaf Ebrahimi
3442*22dc650dSSadaf Ebrahimi/a[B-\Nc]/
3443*22dc650dSSadaf Ebrahimi
3444*22dc650dSSadaf Ebrahimi/a[B\Nc]/
3445*22dc650dSSadaf Ebrahimi
3446*22dc650dSSadaf Ebrahimi/(a)(?2){0,1999}?(b)/
3447*22dc650dSSadaf Ebrahimi
3448*22dc650dSSadaf Ebrahimi/(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
3449*22dc650dSSadaf Ebrahimi
3450*22dc650dSSadaf Ebrahimi# This test, with something more complicated than individual letters, causes
3451*22dc650dSSadaf Ebrahimi# different behaviour in Perl. Perhaps it disables some optimization; no tag is
3452*22dc650dSSadaf Ebrahimi# passed back for the failures, whereas in PCRE2 there is a tag.
3453*22dc650dSSadaf Ebrahimi
3454*22dc650dSSadaf Ebrahimi/(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/x,mark
3455*22dc650dSSadaf Ebrahimi    AABC
3456*22dc650dSSadaf Ebrahimi    XXYZ
3457*22dc650dSSadaf Ebrahimi\= Expect no match
3458*22dc650dSSadaf Ebrahimi    XAQQ
3459*22dc650dSSadaf Ebrahimi    XAQQXZZ
3460*22dc650dSSadaf Ebrahimi    AXQQQ
3461*22dc650dSSadaf Ebrahimi    AXXQQQ
3462*22dc650dSSadaf Ebrahimi
3463*22dc650dSSadaf Ebrahimi# Perl doesn't give marks for these, though it does if the alternatives are
3464*22dc650dSSadaf Ebrahimi# replaced by single letters.
3465*22dc650dSSadaf Ebrahimi
3466*22dc650dSSadaf Ebrahimi/(b|q)(*:m)f|a(*:n)w/mark
3467*22dc650dSSadaf Ebrahimi    aw
3468*22dc650dSSadaf Ebrahimi\= Expect no match
3469*22dc650dSSadaf Ebrahimi    abc
3470*22dc650dSSadaf Ebrahimi
3471*22dc650dSSadaf Ebrahimi/(q|b)(*:m)f|a(*:n)w/mark
3472*22dc650dSSadaf Ebrahimi    aw
3473*22dc650dSSadaf Ebrahimi\= Expect no match
3474*22dc650dSSadaf Ebrahimi    abc
3475*22dc650dSSadaf Ebrahimi
3476*22dc650dSSadaf Ebrahimi# After a partial match, the behaviour is as for a failure.
3477*22dc650dSSadaf Ebrahimi
3478*22dc650dSSadaf Ebrahimi/^a(*:X)bcde/mark
3479*22dc650dSSadaf Ebrahimi   abc\=ps
3480*22dc650dSSadaf Ebrahimi
3481*22dc650dSSadaf Ebrahimi# These are here because Perl doesn't return a mark, except for the first.
3482*22dc650dSSadaf Ebrahimi
3483*22dc650dSSadaf Ebrahimi/(?=(*:x))(q|)/aftertext,mark
3484*22dc650dSSadaf Ebrahimi    abc
3485*22dc650dSSadaf Ebrahimi
3486*22dc650dSSadaf Ebrahimi/(?=(*:x))((*:y)q|)/aftertext,mark
3487*22dc650dSSadaf Ebrahimi    abc
3488*22dc650dSSadaf Ebrahimi
3489*22dc650dSSadaf Ebrahimi/(?=(*:x))(?:(*:y)q|)/aftertext,mark
3490*22dc650dSSadaf Ebrahimi    abc
3491*22dc650dSSadaf Ebrahimi
3492*22dc650dSSadaf Ebrahimi/(?=(*:x))(?>(*:y)q|)/aftertext,mark
3493*22dc650dSSadaf Ebrahimi    abc
3494*22dc650dSSadaf Ebrahimi
3495*22dc650dSSadaf Ebrahimi/(?=a(*:x))(?!a(*:y)c)/aftertext,mark
3496*22dc650dSSadaf Ebrahimi    ab
3497*22dc650dSSadaf Ebrahimi
3498*22dc650dSSadaf Ebrahimi/(?=a(*:x))(?=a(*:y)c|)/aftertext,mark
3499*22dc650dSSadaf Ebrahimi    ab
3500*22dc650dSSadaf Ebrahimi
3501*22dc650dSSadaf Ebrahimi/(..)\1/
3502*22dc650dSSadaf Ebrahimi    ab\=ps
3503*22dc650dSSadaf Ebrahimi    aba\=ps
3504*22dc650dSSadaf Ebrahimi    abab\=ps
3505*22dc650dSSadaf Ebrahimi
3506*22dc650dSSadaf Ebrahimi/(..)\1/i
3507*22dc650dSSadaf Ebrahimi    ab\=ps
3508*22dc650dSSadaf Ebrahimi    abA\=ps
3509*22dc650dSSadaf Ebrahimi    aBAb\=ps
3510*22dc650dSSadaf Ebrahimi
3511*22dc650dSSadaf Ebrahimi/(..)\1{2,}/
3512*22dc650dSSadaf Ebrahimi    ab\=ps
3513*22dc650dSSadaf Ebrahimi    aba\=ps
3514*22dc650dSSadaf Ebrahimi    abab\=ps
3515*22dc650dSSadaf Ebrahimi    ababa\=ps
3516*22dc650dSSadaf Ebrahimi    ababab\=ps
3517*22dc650dSSadaf Ebrahimi    ababab\=ph
3518*22dc650dSSadaf Ebrahimi    abababa\=ps
3519*22dc650dSSadaf Ebrahimi    abababa\=ph
3520*22dc650dSSadaf Ebrahimi
3521*22dc650dSSadaf Ebrahimi/(..)\1{2,}/i
3522*22dc650dSSadaf Ebrahimi    ab\=ps
3523*22dc650dSSadaf Ebrahimi    aBa\=ps
3524*22dc650dSSadaf Ebrahimi    aBAb\=ps
3525*22dc650dSSadaf Ebrahimi    AbaBA\=ps
3526*22dc650dSSadaf Ebrahimi    abABAb\=ps
3527*22dc650dSSadaf Ebrahimi    aBAbaB\=ph
3528*22dc650dSSadaf Ebrahimi    abABabA\=ps
3529*22dc650dSSadaf Ebrahimi    abaBABa\=ph
3530*22dc650dSSadaf Ebrahimi
3531*22dc650dSSadaf Ebrahimi/(..)\1{2,}?x/i
3532*22dc650dSSadaf Ebrahimi    ab\=ps
3533*22dc650dSSadaf Ebrahimi    abA\=ps
3534*22dc650dSSadaf Ebrahimi    aBAb\=ps
3535*22dc650dSSadaf Ebrahimi    abaBA\=ps
3536*22dc650dSSadaf Ebrahimi    abAbaB\=ps
3537*22dc650dSSadaf Ebrahimi    abaBabA\=ps
3538*22dc650dSSadaf Ebrahimi    abAbABaBx\=ps
3539*22dc650dSSadaf Ebrahimi
3540*22dc650dSSadaf Ebrahimi/^(..)\1/
3541*22dc650dSSadaf Ebrahimi    aba\=ps
3542*22dc650dSSadaf Ebrahimi
3543*22dc650dSSadaf Ebrahimi/^(..)\1{2,3}x/
3544*22dc650dSSadaf Ebrahimi    aba\=ps
3545*22dc650dSSadaf Ebrahimi    ababa\=ps
3546*22dc650dSSadaf Ebrahimi    ababa\=ph
3547*22dc650dSSadaf Ebrahimi    abababx
3548*22dc650dSSadaf Ebrahimi    ababababx
3549*22dc650dSSadaf Ebrahimi
3550*22dc650dSSadaf Ebrahimi/^(..)\1{2,3}?x/
3551*22dc650dSSadaf Ebrahimi    aba\=ps
3552*22dc650dSSadaf Ebrahimi    ababa\=ps
3553*22dc650dSSadaf Ebrahimi    ababa\=ph
3554*22dc650dSSadaf Ebrahimi    abababx
3555*22dc650dSSadaf Ebrahimi    ababababx
3556*22dc650dSSadaf Ebrahimi
3557*22dc650dSSadaf Ebrahimi/^(..)(\1{2,3})ab/
3558*22dc650dSSadaf Ebrahimi    abababab
3559*22dc650dSSadaf Ebrahimi
3560*22dc650dSSadaf Ebrahimi/^\R/
3561*22dc650dSSadaf Ebrahimi    \r\=ps
3562*22dc650dSSadaf Ebrahimi    \r\=ph
3563*22dc650dSSadaf Ebrahimi
3564*22dc650dSSadaf Ebrahimi/^\R{2,3}x/
3565*22dc650dSSadaf Ebrahimi    \r\=ps
3566*22dc650dSSadaf Ebrahimi    \r\=ph
3567*22dc650dSSadaf Ebrahimi    \r\r\=ps
3568*22dc650dSSadaf Ebrahimi    \r\r\=ph
3569*22dc650dSSadaf Ebrahimi    \r\r\r\=ps
3570*22dc650dSSadaf Ebrahimi    \r\r\r\=ph
3571*22dc650dSSadaf Ebrahimi    \r\rx
3572*22dc650dSSadaf Ebrahimi    \r\r\rx
3573*22dc650dSSadaf Ebrahimi
3574*22dc650dSSadaf Ebrahimi/^\R{2,3}?x/
3575*22dc650dSSadaf Ebrahimi    \r\=ps
3576*22dc650dSSadaf Ebrahimi    \r\=ph
3577*22dc650dSSadaf Ebrahimi    \r\r\=ps
3578*22dc650dSSadaf Ebrahimi    \r\r\=ph
3579*22dc650dSSadaf Ebrahimi    \r\r\r\=ps
3580*22dc650dSSadaf Ebrahimi    \r\r\r\=ph
3581*22dc650dSSadaf Ebrahimi    \r\rx
3582*22dc650dSSadaf Ebrahimi    \r\r\rx
3583*22dc650dSSadaf Ebrahimi
3584*22dc650dSSadaf Ebrahimi/^\R?x/
3585*22dc650dSSadaf Ebrahimi    \r\=ps
3586*22dc650dSSadaf Ebrahimi    \r\=ph
3587*22dc650dSSadaf Ebrahimi    x
3588*22dc650dSSadaf Ebrahimi    \rx
3589*22dc650dSSadaf Ebrahimi
3590*22dc650dSSadaf Ebrahimi/^\R+x/
3591*22dc650dSSadaf Ebrahimi    \r\=ps
3592*22dc650dSSadaf Ebrahimi    \r\=ph
3593*22dc650dSSadaf Ebrahimi    \r\n\=ps
3594*22dc650dSSadaf Ebrahimi    \r\n\=ph
3595*22dc650dSSadaf Ebrahimi    \rx
3596*22dc650dSSadaf Ebrahimi
3597*22dc650dSSadaf Ebrahimi/^a$/newline=crlf
3598*22dc650dSSadaf Ebrahimi    a\r\=ps
3599*22dc650dSSadaf Ebrahimi    a\r\=ph
3600*22dc650dSSadaf Ebrahimi
3601*22dc650dSSadaf Ebrahimi/^a$/m,newline=crlf
3602*22dc650dSSadaf Ebrahimi    a\r\=ps
3603*22dc650dSSadaf Ebrahimi    a\r\=ph
3604*22dc650dSSadaf Ebrahimi
3605*22dc650dSSadaf Ebrahimi/^(a$|a\r)/newline=crlf
3606*22dc650dSSadaf Ebrahimi    a\r\=ps
3607*22dc650dSSadaf Ebrahimi    a\r\=ph
3608*22dc650dSSadaf Ebrahimi
3609*22dc650dSSadaf Ebrahimi/^(a$|a\r)/m,newline=crlf
3610*22dc650dSSadaf Ebrahimi    a\r\=ps
3611*22dc650dSSadaf Ebrahimi    a\r\=ph
3612*22dc650dSSadaf Ebrahimi
3613*22dc650dSSadaf Ebrahimi/./newline=crlf
3614*22dc650dSSadaf Ebrahimi    \r\=ps
3615*22dc650dSSadaf Ebrahimi    \r\=ph
3616*22dc650dSSadaf Ebrahimi
3617*22dc650dSSadaf Ebrahimi/.{2,3}/newline=crlf
3618*22dc650dSSadaf Ebrahimi    \r\=ps
3619*22dc650dSSadaf Ebrahimi    \r\=ph
3620*22dc650dSSadaf Ebrahimi    \r\r\=ps
3621*22dc650dSSadaf Ebrahimi    \r\r\=ph
3622*22dc650dSSadaf Ebrahimi    \r\r\r\=ps
3623*22dc650dSSadaf Ebrahimi    \r\r\r\=ph
3624*22dc650dSSadaf Ebrahimi
3625*22dc650dSSadaf Ebrahimi/.{2,3}?/newline=crlf
3626*22dc650dSSadaf Ebrahimi    \r\=ps
3627*22dc650dSSadaf Ebrahimi    \r\=ph
3628*22dc650dSSadaf Ebrahimi    \r\r\=ps
3629*22dc650dSSadaf Ebrahimi    \r\r\=ph
3630*22dc650dSSadaf Ebrahimi    \r\r\r\=ps
3631*22dc650dSSadaf Ebrahimi    \r\r\r\=ph
3632*22dc650dSSadaf Ebrahimi
3633*22dc650dSSadaf Ebrahimi"AB(C(D))(E(F))?(?(?=\2)(?=\4))"
3634*22dc650dSSadaf Ebrahimi    ABCDGHI\=ovector=01
3635*22dc650dSSadaf Ebrahimi
3636*22dc650dSSadaf Ebrahimi# These are all run as real matches in test 1; here we are just checking the
3637*22dc650dSSadaf Ebrahimi# settings of the anchored and startline bits.
3638*22dc650dSSadaf Ebrahimi
3639*22dc650dSSadaf Ebrahimi/(?>.*?a)(?<=ba)/I
3640*22dc650dSSadaf Ebrahimi
3641*22dc650dSSadaf Ebrahimi/(?:.*?a)(?<=ba)/I
3642*22dc650dSSadaf Ebrahimi
3643*22dc650dSSadaf Ebrahimi/.*?a(*PRUNE)b/I
3644*22dc650dSSadaf Ebrahimi
3645*22dc650dSSadaf Ebrahimi/.*?a(*PRUNE)b/Is
3646*22dc650dSSadaf Ebrahimi
3647*22dc650dSSadaf Ebrahimi/^a(*PRUNE)b/Is
3648*22dc650dSSadaf Ebrahimi
3649*22dc650dSSadaf Ebrahimi/.*?a(*SKIP)b/I
3650*22dc650dSSadaf Ebrahimi
3651*22dc650dSSadaf Ebrahimi/(?>.*?a)b/Is
3652*22dc650dSSadaf Ebrahimi
3653*22dc650dSSadaf Ebrahimi/(?>.*?a)b/I
3654*22dc650dSSadaf Ebrahimi
3655*22dc650dSSadaf Ebrahimi/(?>^a)b/Is
3656*22dc650dSSadaf Ebrahimi
3657*22dc650dSSadaf Ebrahimi/(?>.*?)(?<=(abcd)|(wxyz))/I
3658*22dc650dSSadaf Ebrahimi
3659*22dc650dSSadaf Ebrahimi/(?>.*)(?<=(abcd)|(wxyz))/I
3660*22dc650dSSadaf Ebrahimi
3661*22dc650dSSadaf Ebrahimi"(?>.*)foo"I
3662*22dc650dSSadaf Ebrahimi
3663*22dc650dSSadaf Ebrahimi"(?>.*?)foo"I
3664*22dc650dSSadaf Ebrahimi
3665*22dc650dSSadaf Ebrahimi/(?>^abc)/Im
3666*22dc650dSSadaf Ebrahimi
3667*22dc650dSSadaf Ebrahimi/(?>.*abc)/Im
3668*22dc650dSSadaf Ebrahimi
3669*22dc650dSSadaf Ebrahimi/(?:.*abc)/Im
3670*22dc650dSSadaf Ebrahimi
3671*22dc650dSSadaf Ebrahimi/(?:(a)+(?C1)bb|aa(?C2)b)/
3672*22dc650dSSadaf Ebrahimi    aab\=callout_capture
3673*22dc650dSSadaf Ebrahimi
3674*22dc650dSSadaf Ebrahimi/(?:(a)++(?C1)bb|aa(?C2)b)/
3675*22dc650dSSadaf Ebrahimi    aab\=callout_capture
3676*22dc650dSSadaf Ebrahimi
3677*22dc650dSSadaf Ebrahimi/(?:(?>(a))(?C1)bb|aa(?C2)b)/
3678*22dc650dSSadaf Ebrahimi    aab\=callout_capture
3679*22dc650dSSadaf Ebrahimi
3680*22dc650dSSadaf Ebrahimi/(?:(?1)(?C1)x|ab(?C2))((a)){0}/
3681*22dc650dSSadaf Ebrahimi    aab\=callout_capture
3682*22dc650dSSadaf Ebrahimi
3683*22dc650dSSadaf Ebrahimi/(?1)(?C1)((a)(?C2)){0}/
3684*22dc650dSSadaf Ebrahimi    aab\=callout_capture
3685*22dc650dSSadaf Ebrahimi
3686*22dc650dSSadaf Ebrahimi/(?:(a)+(?C1)bb|aa(?C2)b)++/
3687*22dc650dSSadaf Ebrahimi    aab\=callout_capture
3688*22dc650dSSadaf Ebrahimi    aab\=callout_capture,ovector=1
3689*22dc650dSSadaf Ebrahimi
3690*22dc650dSSadaf Ebrahimi/(ab)x|ab/
3691*22dc650dSSadaf Ebrahimi    ab\=ovector=0
3692*22dc650dSSadaf Ebrahimi    ab\=ovector=1
3693*22dc650dSSadaf Ebrahimi
3694*22dc650dSSadaf Ebrahimi/(?<=123)(*MARK:xx)abc/mark
3695*22dc650dSSadaf Ebrahimi    xxxx123a\=ph
3696*22dc650dSSadaf Ebrahimi    xxxx123a\=ps
3697*22dc650dSSadaf Ebrahimi
3698*22dc650dSSadaf Ebrahimi/123\Kabc/startchar
3699*22dc650dSSadaf Ebrahimi    xxxx123a\=ph
3700*22dc650dSSadaf Ebrahimi    xxxx123a\=ps
3701*22dc650dSSadaf Ebrahimi
3702*22dc650dSSadaf Ebrahimi/^(?(?=a)aa|bb)/auto_callout
3703*22dc650dSSadaf Ebrahimi    bb
3704*22dc650dSSadaf Ebrahimi
3705*22dc650dSSadaf Ebrahimi/(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
3706*22dc650dSSadaf Ebrahimi    bb
3707*22dc650dSSadaf Ebrahimi
3708*22dc650dSSadaf Ebrahimi# Perl seems to have a bug with this one.
3709*22dc650dSSadaf Ebrahimi
3710*22dc650dSSadaf Ebrahimi/aaaaa(*COMMIT)(*PRUNE)b|a+c/
3711*22dc650dSSadaf Ebrahimi    aaaaaac
3712*22dc650dSSadaf Ebrahimi
3713*22dc650dSSadaf Ebrahimi# Here are some that Perl treats differently because of the way it handles
3714*22dc650dSSadaf Ebrahimi# backtracking verbs.
3715*22dc650dSSadaf Ebrahimi
3716*22dc650dSSadaf Ebrahimi/(?!a(*COMMIT)b)ac|ad/
3717*22dc650dSSadaf Ebrahimi     ac
3718*22dc650dSSadaf Ebrahimi     ad
3719*22dc650dSSadaf Ebrahimi
3720*22dc650dSSadaf Ebrahimi/^(?!a(*THEN)b|ac)../
3721*22dc650dSSadaf Ebrahimi     ad
3722*22dc650dSSadaf Ebrahimi\= Expect no match
3723*22dc650dSSadaf Ebrahimi     ac
3724*22dc650dSSadaf Ebrahimi
3725*22dc650dSSadaf Ebrahimi/^(?=a(*THEN)b|ac)/
3726*22dc650dSSadaf Ebrahimi    ac
3727*22dc650dSSadaf Ebrahimi
3728*22dc650dSSadaf Ebrahimi/\A.*?(?:a|b(*THEN)c)/
3729*22dc650dSSadaf Ebrahimi    ba
3730*22dc650dSSadaf Ebrahimi
3731*22dc650dSSadaf Ebrahimi/\A.*?(?:a|b(*THEN)c)++/
3732*22dc650dSSadaf Ebrahimi    ba
3733*22dc650dSSadaf Ebrahimi
3734*22dc650dSSadaf Ebrahimi/\A.*?(?:a|b(*THEN)c|d)/
3735*22dc650dSSadaf Ebrahimi    ba
3736*22dc650dSSadaf Ebrahimi
3737*22dc650dSSadaf Ebrahimi/(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
3738*22dc650dSSadaf Ebrahimi    aac
3739*22dc650dSSadaf Ebrahimi
3740*22dc650dSSadaf Ebrahimi/\A.*?(a|b(*THEN)c)/
3741*22dc650dSSadaf Ebrahimi    ba
3742*22dc650dSSadaf Ebrahimi
3743*22dc650dSSadaf Ebrahimi/^(A(*THEN)B|A(*THEN)D)/
3744*22dc650dSSadaf Ebrahimi    AD
3745*22dc650dSSadaf Ebrahimi
3746*22dc650dSSadaf Ebrahimi/(?!b(*THEN)a)bn|bnn/
3747*22dc650dSSadaf Ebrahimi    bnn
3748*22dc650dSSadaf Ebrahimi
3749*22dc650dSSadaf Ebrahimi/(?(?=b(*SKIP)a)bn|bnn)/
3750*22dc650dSSadaf Ebrahimi    bnn
3751*22dc650dSSadaf Ebrahimi
3752*22dc650dSSadaf Ebrahimi/(?=b(*THEN)a|)bn|bnn/
3753*22dc650dSSadaf Ebrahimi    bnn
3754*22dc650dSSadaf Ebrahimi
3755*22dc650dSSadaf Ebrahimi# This test causes a segfault with Perl 5.18.0
3756*22dc650dSSadaf Ebrahimi
3757*22dc650dSSadaf Ebrahimi/^(?=(a)){0}b(?1)/
3758*22dc650dSSadaf Ebrahimi    backgammon
3759*22dc650dSSadaf Ebrahimi
3760*22dc650dSSadaf Ebrahimi/(?|(?<n>f)|(?<n>b))/I,dupnames
3761*22dc650dSSadaf Ebrahimi
3762*22dc650dSSadaf Ebrahimi/(?<a>abc)(?<a>z)\k<a>()/IB,dupnames
3763*22dc650dSSadaf Ebrahimi
3764*22dc650dSSadaf Ebrahimi/a*[bcd]/B
3765*22dc650dSSadaf Ebrahimi
3766*22dc650dSSadaf Ebrahimi/[bcd]*a/B
3767*22dc650dSSadaf Ebrahimi
3768*22dc650dSSadaf Ebrahimi# A complete set of tests for auto-possessification of character types, but
3769*22dc650dSSadaf Ebrahimi# omitting \C because it might be disabled (it has its own tests).
3770*22dc650dSSadaf Ebrahimi
3771*22dc650dSSadaf Ebrahimi/\D+\D \D+\d \D+\S \D+\s \D+\W \D+\w \D+. \D+\R \D+\H \D+\h \D+\V \D+\v \D+\Z \D+\z \D+$/Bx
3772*22dc650dSSadaf Ebrahimi
3773*22dc650dSSadaf Ebrahimi/\d+\D \d+\d \d+\S \d+\s \d+\W \d+\w \d+. \d+\R \d+\H \d+\h \d+\V \d+\v \d+\Z \d+\z \d+$/Bx
3774*22dc650dSSadaf Ebrahimi
3775*22dc650dSSadaf Ebrahimi/\S+\D \S+\d \S+\S \S+\s \S+\W \S+\w \S+. \S+\R \S+\H \S+\h \S+\V \S+\v \S+\Z \S+\z \S+$/Bx
3776*22dc650dSSadaf Ebrahimi
3777*22dc650dSSadaf Ebrahimi/\s+\D \s+\d \s+\S \s+\s \s+\W \s+\w \s+. \s+\R \s+\H \s+\h \s+\V \s+\v \s+\Z \s+\z \s+$/Bx
3778*22dc650dSSadaf Ebrahimi
3779*22dc650dSSadaf Ebrahimi/\W+\D \W+\d \W+\S \W+\s \W+\W \W+\w \W+. \W+\R \W+\H \W+\h \W+\V \W+\v \W+\Z \W+\z \W+$/Bx
3780*22dc650dSSadaf Ebrahimi
3781*22dc650dSSadaf Ebrahimi/\w+\D \w+\d \w+\S \w+\s \w+\W \w+\w \w+. \w+\R \w+\H \w+\h \w+\V \w+\v \w+\Z \w+\z \w+$/Bx
3782*22dc650dSSadaf Ebrahimi
3783*22dc650dSSadaf Ebrahimi/\R+\D \R+\d \R+\S \R+\s \R+\W \R+\w \R+. \R+\R \R+\H \R+\h \R+\V \R+\v \R+\Z \R+\z \R+$/Bx
3784*22dc650dSSadaf Ebrahimi
3785*22dc650dSSadaf Ebrahimi/\H+\D \H+\d \H+\S \H+\s \H+\W \H+\w \H+. \H+\R \H+\H \H+\h \H+\V \H+\v \H+\Z \H+\z \H+$/Bx
3786*22dc650dSSadaf Ebrahimi
3787*22dc650dSSadaf Ebrahimi/\h+\D \h+\d \h+\S \h+\s \h+\W \h+\w \h+. \h+\R \h+\H \h+\h \h+\V \h+\v \h+\Z \h+\z \h+$/Bx
3788*22dc650dSSadaf Ebrahimi
3789*22dc650dSSadaf Ebrahimi/\V+\D \V+\d \V+\S \V+\s \V+\W \V+\w \V+. \V+\R \V+\H \V+\h \V+\V \V+\v \V+\Z \V+\z \V+$/Bx
3790*22dc650dSSadaf Ebrahimi
3791*22dc650dSSadaf Ebrahimi/\v+\D \v+\d \v+\S \v+\s \v+\W \v+\w \v+. \v+\R \v+\H \v+\h \v+\V \v+\v \v+\Z \v+\z \v+$/Bx
3792*22dc650dSSadaf Ebrahimi
3793*22dc650dSSadaf Ebrahimi/ a+\D  a+\d  a+\S  a+\s  a+\W  a+\w  a+.  a+\R  a+\H  a+\h  a+\V  a+\v  a+\Z  a+\z  a+$/Bx
3794*22dc650dSSadaf Ebrahimi
3795*22dc650dSSadaf Ebrahimi/\n+\D \n+\d \n+\S \n+\s \n+\W \n+\w \n+. \n+\R \n+\H \n+\h \n+\V \n+\v \n+\Z \n+\z \n+$/Bx
3796*22dc650dSSadaf Ebrahimi
3797*22dc650dSSadaf Ebrahimi/ .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/Bx
3798*22dc650dSSadaf Ebrahimi
3799*22dc650dSSadaf Ebrahimi/ .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/Bsx
3800*22dc650dSSadaf Ebrahimi
3801*22dc650dSSadaf Ebrahimi/ \D+$  \d+$  \S+$  \s+$  \W+$  \w+$  \R+$  \H+$  \h+$  \V+$ \v+$  a+$   \n+$  .+$  .+$/Bmx
3802*22dc650dSSadaf Ebrahimi
3803*22dc650dSSadaf Ebrahimi/(?=a+)a(a+)++a/B
3804*22dc650dSSadaf Ebrahimi
3805*22dc650dSSadaf Ebrahimi/a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/B
3806*22dc650dSSadaf Ebrahimi
3807*22dc650dSSadaf Ebrahimi/a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/B
3808*22dc650dSSadaf Ebrahimi
3809*22dc650dSSadaf Ebrahimi/a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/B
3810*22dc650dSSadaf Ebrahimi
3811*22dc650dSSadaf Ebrahimi/[ab]*/B
3812*22dc650dSSadaf Ebrahimi    aaaa
3813*22dc650dSSadaf Ebrahimi
3814*22dc650dSSadaf Ebrahimi/[ab]*?/B
3815*22dc650dSSadaf Ebrahimi    aaaa
3816*22dc650dSSadaf Ebrahimi
3817*22dc650dSSadaf Ebrahimi/[ab]?/B
3818*22dc650dSSadaf Ebrahimi    aaaa
3819*22dc650dSSadaf Ebrahimi
3820*22dc650dSSadaf Ebrahimi/[ab]??/B
3821*22dc650dSSadaf Ebrahimi    aaaa
3822*22dc650dSSadaf Ebrahimi
3823*22dc650dSSadaf Ebrahimi/[ab]+/B
3824*22dc650dSSadaf Ebrahimi    aaaa
3825*22dc650dSSadaf Ebrahimi
3826*22dc650dSSadaf Ebrahimi/[ab]+?/B
3827*22dc650dSSadaf Ebrahimi    aaaa
3828*22dc650dSSadaf Ebrahimi
3829*22dc650dSSadaf Ebrahimi/[ab]{2,3}/B
3830*22dc650dSSadaf Ebrahimi    aaaa
3831*22dc650dSSadaf Ebrahimi
3832*22dc650dSSadaf Ebrahimi/[ab]{2,3}?/B
3833*22dc650dSSadaf Ebrahimi    aaaa
3834*22dc650dSSadaf Ebrahimi
3835*22dc650dSSadaf Ebrahimi/[ab]{2,}/B
3836*22dc650dSSadaf Ebrahimi    aaaa
3837*22dc650dSSadaf Ebrahimi
3838*22dc650dSSadaf Ebrahimi/[ab]{2,}?/B
3839*22dc650dSSadaf Ebrahimi    aaaa
3840*22dc650dSSadaf Ebrahimi
3841*22dc650dSSadaf Ebrahimi/\d+\s{0,5}=\s*\S?=\w{0,4}\W*/B
3842*22dc650dSSadaf Ebrahimi
3843*22dc650dSSadaf Ebrahimi/[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/B
3844*22dc650dSSadaf Ebrahimi
3845*22dc650dSSadaf Ebrahimi/[a-z]*\s#[ \t]?\S#[a-c]*\S#[C-G]+?\d#[4-8]*\D#[4-9,]*\D#[!$]{0,5}\w#[M-Xf-l]+\W#[a-c,]?\W/B
3846*22dc650dSSadaf Ebrahimi
3847*22dc650dSSadaf Ebrahimi/a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/B
3848*22dc650dSSadaf Ebrahimi
3849*22dc650dSSadaf Ebrahimi/[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/B
3850*22dc650dSSadaf Ebrahimi
3851*22dc650dSSadaf Ebrahimi/[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/B
3852*22dc650dSSadaf Ebrahimi
3853*22dc650dSSadaf Ebrahimi/[a-c]*d/IB
3854*22dc650dSSadaf Ebrahimi
3855*22dc650dSSadaf Ebrahimi/[a-c]+d/IB
3856*22dc650dSSadaf Ebrahimi
3857*22dc650dSSadaf Ebrahimi/[a-c]?d/IB
3858*22dc650dSSadaf Ebrahimi
3859*22dc650dSSadaf Ebrahimi/[a-c]{4,6}d/IB
3860*22dc650dSSadaf Ebrahimi
3861*22dc650dSSadaf Ebrahimi/[a-c]{0,6}d/IB
3862*22dc650dSSadaf Ebrahimi
3863*22dc650dSSadaf Ebrahimi# End of special auto-possessive tests
3864*22dc650dSSadaf Ebrahimi
3865*22dc650dSSadaf Ebrahimi/^A\o{1239}B/
3866*22dc650dSSadaf Ebrahimi    A\123B
3867*22dc650dSSadaf Ebrahimi
3868*22dc650dSSadaf Ebrahimi/^A\oB/
3869*22dc650dSSadaf Ebrahimi
3870*22dc650dSSadaf Ebrahimi/^A\x{zz}B/
3871*22dc650dSSadaf Ebrahimi
3872*22dc650dSSadaf Ebrahimi/^A\x{12Z/
3873*22dc650dSSadaf Ebrahimi
3874*22dc650dSSadaf Ebrahimi/^A\x{/
3875*22dc650dSSadaf Ebrahimi
3876*22dc650dSSadaf Ebrahimi/[ab]++/B,no_auto_possess
3877*22dc650dSSadaf Ebrahimi
3878*22dc650dSSadaf Ebrahimi/[^ab]*+/B,no_auto_possess
3879*22dc650dSSadaf Ebrahimi
3880*22dc650dSSadaf Ebrahimi/a{4}+/B,no_auto_possess
3881*22dc650dSSadaf Ebrahimi
3882*22dc650dSSadaf Ebrahimi/a{4}+/Bi,no_auto_possess
3883*22dc650dSSadaf Ebrahimi
3884*22dc650dSSadaf Ebrahimi/[a-[:digit:]]+/
3885*22dc650dSSadaf Ebrahimi
3886*22dc650dSSadaf Ebrahimi/[A-[:digit:]]+/
3887*22dc650dSSadaf Ebrahimi
3888*22dc650dSSadaf Ebrahimi/[a-[.xxx.]]+/
3889*22dc650dSSadaf Ebrahimi
3890*22dc650dSSadaf Ebrahimi/[a-[=xxx=]]+/
3891*22dc650dSSadaf Ebrahimi
3892*22dc650dSSadaf Ebrahimi/[a-[!xxx!]]+/
3893*22dc650dSSadaf Ebrahimi
3894*22dc650dSSadaf Ebrahimi/[A-[!xxx!]]+/
3895*22dc650dSSadaf Ebrahimi    A]]]
3896*22dc650dSSadaf Ebrahimi
3897*22dc650dSSadaf Ebrahimi/[a-\d]+/
3898*22dc650dSSadaf Ebrahimi
3899*22dc650dSSadaf Ebrahimi/(?<0abc>xx)/
3900*22dc650dSSadaf Ebrahimi
3901*22dc650dSSadaf Ebrahimi/(?&1abc)xx(?<1abc>y)/
3902*22dc650dSSadaf Ebrahimi
3903*22dc650dSSadaf Ebrahimi/(?<ab-cd>xx)/
3904*22dc650dSSadaf Ebrahimi
3905*22dc650dSSadaf Ebrahimi/(?'0abc'xx)/
3906*22dc650dSSadaf Ebrahimi
3907*22dc650dSSadaf Ebrahimi/(?P<0abc>xx)/
3908*22dc650dSSadaf Ebrahimi
3909*22dc650dSSadaf Ebrahimi/\k<5ghj>/
3910*22dc650dSSadaf Ebrahimi
3911*22dc650dSSadaf Ebrahimi/\k'5ghj'/
3912*22dc650dSSadaf Ebrahimi
3913*22dc650dSSadaf Ebrahimi/\k{2fgh}/
3914*22dc650dSSadaf Ebrahimi
3915*22dc650dSSadaf Ebrahimi/(?P=8yuki)/
3916*22dc650dSSadaf Ebrahimi
3917*22dc650dSSadaf Ebrahimi/\g{4df}/
3918*22dc650dSSadaf Ebrahimi
3919*22dc650dSSadaf Ebrahimi/(?&1abc)xx(?<1abc>y)/
3920*22dc650dSSadaf Ebrahimi
3921*22dc650dSSadaf Ebrahimi/(?P>1abc)xx(?<1abc>y)/
3922*22dc650dSSadaf Ebrahimi
3923*22dc650dSSadaf Ebrahimi/\g'3gh'/
3924*22dc650dSSadaf Ebrahimi
3925*22dc650dSSadaf Ebrahimi/\g<5fg>/
3926*22dc650dSSadaf Ebrahimi
3927*22dc650dSSadaf Ebrahimi/(?(<4gh>)abc)/
3928*22dc650dSSadaf Ebrahimi
3929*22dc650dSSadaf Ebrahimi/(?('4gh')abc)/
3930*22dc650dSSadaf Ebrahimi
3931*22dc650dSSadaf Ebrahimi/(?(4gh)abc)/
3932*22dc650dSSadaf Ebrahimi
3933*22dc650dSSadaf Ebrahimi/(?(R&6yh)abc)/
3934*22dc650dSSadaf Ebrahimi
3935*22dc650dSSadaf Ebrahimi/(((a\2)|(a*)\g<-1>))*a?/B
3936*22dc650dSSadaf Ebrahimi
3937*22dc650dSSadaf Ebrahimi# Test the ugly "start or end of word" compatibility syntax.
3938*22dc650dSSadaf Ebrahimi
3939*22dc650dSSadaf Ebrahimi/[[:<:]]red[[:>:]]/B
3940*22dc650dSSadaf Ebrahimi    little red riding hood
3941*22dc650dSSadaf Ebrahimi    a /red/ thing
3942*22dc650dSSadaf Ebrahimi    red is a colour
3943*22dc650dSSadaf Ebrahimi    put it all on red
3944*22dc650dSSadaf Ebrahimi\= Expect no match
3945*22dc650dSSadaf Ebrahimi    no reduction
3946*22dc650dSSadaf Ebrahimi    Alfred Winifred
3947*22dc650dSSadaf Ebrahimi
3948*22dc650dSSadaf Ebrahimi/[a[:<:]] should give error/
3949*22dc650dSSadaf Ebrahimi
3950*22dc650dSSadaf Ebrahimi/(?=ab\K)/aftertext,allow_lookaround_bsk
3951*22dc650dSSadaf Ebrahimi    abcd\=startchar
3952*22dc650dSSadaf Ebrahimi
3953*22dc650dSSadaf Ebrahimi/abcd/newline=lf,firstline
3954*22dc650dSSadaf Ebrahimi\= Expect no match
3955*22dc650dSSadaf Ebrahimi    xx\nxabcd
3956*22dc650dSSadaf Ebrahimi
3957*22dc650dSSadaf Ebrahimi# Test stack guard external calls.
3958*22dc650dSSadaf Ebrahimi
3959*22dc650dSSadaf Ebrahimi/(((a)))/stackguard=1
3960*22dc650dSSadaf Ebrahimi
3961*22dc650dSSadaf Ebrahimi/(((a)))/stackguard=2
3962*22dc650dSSadaf Ebrahimi
3963*22dc650dSSadaf Ebrahimi/(((a)))/stackguard=3
3964*22dc650dSSadaf Ebrahimi
3965*22dc650dSSadaf Ebrahimi/(((((a)))))/
3966*22dc650dSSadaf Ebrahimi
3967*22dc650dSSadaf Ebrahimi# End stack guard tests
3968*22dc650dSSadaf Ebrahimi
3969*22dc650dSSadaf Ebrahimi/^\w+(?>\s*)(?<=\w)/B
3970*22dc650dSSadaf Ebrahimi
3971*22dc650dSSadaf Ebrahimi/\othing/
3972*22dc650dSSadaf Ebrahimi
3973*22dc650dSSadaf Ebrahimi/\o{}/
3974*22dc650dSSadaf Ebrahimi
3975*22dc650dSSadaf Ebrahimi/\o{whatever}/
3976*22dc650dSSadaf Ebrahimi
3977*22dc650dSSadaf Ebrahimi/\xthing/
3978*22dc650dSSadaf Ebrahimi
3979*22dc650dSSadaf Ebrahimi/\x{}/
3980*22dc650dSSadaf Ebrahimi
3981*22dc650dSSadaf Ebrahimi/\x{whatever}/
3982*22dc650dSSadaf Ebrahimi
3983*22dc650dSSadaf Ebrahimi/A\8B/
3984*22dc650dSSadaf Ebrahimi
3985*22dc650dSSadaf Ebrahimi/A\9B/
3986*22dc650dSSadaf Ebrahimi
3987*22dc650dSSadaf Ebrahimi# This one is here because Perl fails to match "12" for this pattern when the $
3988*22dc650dSSadaf Ebrahimi# is present.
3989*22dc650dSSadaf Ebrahimi
3990*22dc650dSSadaf Ebrahimi/^(?(?=abc)\w{3}:|\d\d)$/
3991*22dc650dSSadaf Ebrahimi    abc:
3992*22dc650dSSadaf Ebrahimi    12
3993*22dc650dSSadaf Ebrahimi\= Expect no match
3994*22dc650dSSadaf Ebrahimi    123
3995*22dc650dSSadaf Ebrahimi    xyz
3996*22dc650dSSadaf Ebrahimi
3997*22dc650dSSadaf Ebrahimi# Perl gets this one wrong, giving "a" as the after text for ca and failing to
3998*22dc650dSSadaf Ebrahimi# match for cd.
3999*22dc650dSSadaf Ebrahimi
4000*22dc650dSSadaf Ebrahimi/(?(?=ab)ab)/aftertext
4001*22dc650dSSadaf Ebrahimi    abxxx
4002*22dc650dSSadaf Ebrahimi    ca
4003*22dc650dSSadaf Ebrahimi    cd
4004*22dc650dSSadaf Ebrahimi
4005*22dc650dSSadaf Ebrahimi# This should test both paths for processing OP_RECURSE.
4006*22dc650dSSadaf Ebrahimi
4007*22dc650dSSadaf Ebrahimi/(?(R)a+|(?R)b)/
4008*22dc650dSSadaf Ebrahimi    aaaabcde
4009*22dc650dSSadaf Ebrahimi    aaaabcde\=ovector=100
4010*22dc650dSSadaf Ebrahimi
4011*22dc650dSSadaf Ebrahimi/a*?b*?/
4012*22dc650dSSadaf Ebrahimi    ab
4013*22dc650dSSadaf Ebrahimi
4014*22dc650dSSadaf Ebrahimi/(*NOTEMPTY)a*?b*?/
4015*22dc650dSSadaf Ebrahimi    ab
4016*22dc650dSSadaf Ebrahimi    ba
4017*22dc650dSSadaf Ebrahimi    cb
4018*22dc650dSSadaf Ebrahimi
4019*22dc650dSSadaf Ebrahimi/(*NOTEMPTY_ATSTART)a*?b*?/aftertext
4020*22dc650dSSadaf Ebrahimi    ab
4021*22dc650dSSadaf Ebrahimi    cdab
4022*22dc650dSSadaf Ebrahimi
4023*22dc650dSSadaf Ebrahimi/(?(VERSION>=10.0)yes|no)/I
4024*22dc650dSSadaf Ebrahimi    yesno
4025*22dc650dSSadaf Ebrahimi
4026*22dc650dSSadaf Ebrahimi/(?(VERSION>=10.04)yes|no)/
4027*22dc650dSSadaf Ebrahimi    yesno
4028*22dc650dSSadaf Ebrahimi
4029*22dc650dSSadaf Ebrahimi/(?(VERSION=8)yes){3}/BI,aftertext
4030*22dc650dSSadaf Ebrahimi    yesno
4031*22dc650dSSadaf Ebrahimi
4032*22dc650dSSadaf Ebrahimi/(?(VERSION=8)yes|no){3}/I
4033*22dc650dSSadaf Ebrahimi    yesnononoyes
4034*22dc650dSSadaf Ebrahimi\= Expect no match
4035*22dc650dSSadaf Ebrahimi    yesno
4036*22dc650dSSadaf Ebrahimi
4037*22dc650dSSadaf Ebrahimi/(?:(?<VERSION>abc)|xyz)(?(VERSION)yes|no)/I
4038*22dc650dSSadaf Ebrahimi    abcyes
4039*22dc650dSSadaf Ebrahimi    xyzno
4040*22dc650dSSadaf Ebrahimi\= Expect no match
4041*22dc650dSSadaf Ebrahimi    abcno
4042*22dc650dSSadaf Ebrahimi    xyzyes
4043*22dc650dSSadaf Ebrahimi
4044*22dc650dSSadaf Ebrahimi/(?(VERSION<10)yes|no)/
4045*22dc650dSSadaf Ebrahimi
4046*22dc650dSSadaf Ebrahimi/(?(VERSION>10)yes|no)/
4047*22dc650dSSadaf Ebrahimi
4048*22dc650dSSadaf Ebrahimi/(?(VERSION>=10.0.0)yes|no)/
4049*22dc650dSSadaf Ebrahimi
4050*22dc650dSSadaf Ebrahimi/(?(VERSION=10.101)yes|no)/
4051*22dc650dSSadaf Ebrahimi
4052*22dc650dSSadaf Ebrahimi/abcd/I
4053*22dc650dSSadaf Ebrahimi
4054*22dc650dSSadaf Ebrahimi/abcd/I,no_start_optimize
4055*22dc650dSSadaf Ebrahimi
4056*22dc650dSSadaf Ebrahimi/(|ab)*?d/I
4057*22dc650dSSadaf Ebrahimi   abd
4058*22dc650dSSadaf Ebrahimi   xyd
4059*22dc650dSSadaf Ebrahimi
4060*22dc650dSSadaf Ebrahimi/(|ab)*?d/I,no_start_optimize
4061*22dc650dSSadaf Ebrahimi   abd
4062*22dc650dSSadaf Ebrahimi   xyd
4063*22dc650dSSadaf Ebrahimi
4064*22dc650dSSadaf Ebrahimi/\k<A>*(?<A>aa)(?<A>bb)/match_unset_backref,dupnames
4065*22dc650dSSadaf Ebrahimi    aabb
4066*22dc650dSSadaf Ebrahimi
4067*22dc650dSSadaf Ebrahimi/(((((a)))))/parens_nest_limit=2
4068*22dc650dSSadaf Ebrahimi
4069*22dc650dSSadaf Ebrahimi/abc/replace=XYZ
4070*22dc650dSSadaf Ebrahimi    123123
4071*22dc650dSSadaf Ebrahimi    123abc123
4072*22dc650dSSadaf Ebrahimi    123abc123abc123
4073*22dc650dSSadaf Ebrahimi    123123\=zero_terminate
4074*22dc650dSSadaf Ebrahimi    123abc123\=zero_terminate
4075*22dc650dSSadaf Ebrahimi    123abc123abc123\=zero_terminate
4076*22dc650dSSadaf Ebrahimi
4077*22dc650dSSadaf Ebrahimi/abc/g,replace=XYZ
4078*22dc650dSSadaf Ebrahimi    123abc123
4079*22dc650dSSadaf Ebrahimi    123abc123abc123
4080*22dc650dSSadaf Ebrahimi
4081*22dc650dSSadaf Ebrahimi/abc/replace=X$$Z
4082*22dc650dSSadaf Ebrahimi    123abc123
4083*22dc650dSSadaf Ebrahimi
4084*22dc650dSSadaf Ebrahimi/abc/g,replace=X$$Z
4085*22dc650dSSadaf Ebrahimi    123abc123abc123
4086*22dc650dSSadaf Ebrahimi
4087*22dc650dSSadaf Ebrahimi/a(b)c(d)e/replace=X$1Y${2}Z
4088*22dc650dSSadaf Ebrahimi    "abcde"
4089*22dc650dSSadaf Ebrahimi
4090*22dc650dSSadaf Ebrahimi/a(b)c(d)e/replace=X$1Y${2}Z,global
4091*22dc650dSSadaf Ebrahimi    "abcde-abcde"
4092*22dc650dSSadaf Ebrahimi
4093*22dc650dSSadaf Ebrahimi/a(?<ONE>b)c(?<TWO>d)e/replace=X$ONE+${TWO}Z
4094*22dc650dSSadaf Ebrahimi    "abcde"
4095*22dc650dSSadaf Ebrahimi
4096*22dc650dSSadaf Ebrahimi/a(?<ONE>b)c(?<TWO>d)e/g,replace=X$ONE+${TWO}Z
4097*22dc650dSSadaf Ebrahimi    "abcde-abcde-"
4098*22dc650dSSadaf Ebrahimi
4099*22dc650dSSadaf Ebrahimi/abc/replace=a$++
4100*22dc650dSSadaf Ebrahimi    123abc
4101*22dc650dSSadaf Ebrahimi
4102*22dc650dSSadaf Ebrahimi/abc/replace=a$bad
4103*22dc650dSSadaf Ebrahimi    123abc
4104*22dc650dSSadaf Ebrahimi
4105*22dc650dSSadaf Ebrahimi/abc/replace=a${A234567890123456789_123456789012}z
4106*22dc650dSSadaf Ebrahimi    123abc
4107*22dc650dSSadaf Ebrahimi
4108*22dc650dSSadaf Ebrahimi/abc/replace=a${A23456789012345678901234567890123}z
4109*22dc650dSSadaf Ebrahimi    123abc
4110*22dc650dSSadaf Ebrahimi
4111*22dc650dSSadaf Ebrahimi/abc/replace=a${bcd
4112*22dc650dSSadaf Ebrahimi    123abc
4113*22dc650dSSadaf Ebrahimi
4114*22dc650dSSadaf Ebrahimi/abc/replace=a${b+d}z
4115*22dc650dSSadaf Ebrahimi    123abc
4116*22dc650dSSadaf Ebrahimi
4117*22dc650dSSadaf Ebrahimi/abc/replace=[10]XYZ
4118*22dc650dSSadaf Ebrahimi    123abc123
4119*22dc650dSSadaf Ebrahimi
4120*22dc650dSSadaf Ebrahimi/abc/replace=[9]XYZ
4121*22dc650dSSadaf Ebrahimi    123abc123
4122*22dc650dSSadaf Ebrahimi
4123*22dc650dSSadaf Ebrahimi/abc/replace=xyz
4124*22dc650dSSadaf Ebrahimi    1abc2\=partial_hard
4125*22dc650dSSadaf Ebrahimi
4126*22dc650dSSadaf Ebrahimi/abc/replace=xyz
4127*22dc650dSSadaf Ebrahimi    123abc456
4128*22dc650dSSadaf Ebrahimi    123abc456\=replace=pqr
4129*22dc650dSSadaf Ebrahimi    123abc456abc789
4130*22dc650dSSadaf Ebrahimi    123abc456abc789\=g
4131*22dc650dSSadaf Ebrahimi
4132*22dc650dSSadaf Ebrahimi/(?<=abc)(|def)/g,replace=<$0>
4133*22dc650dSSadaf Ebrahimi    123abcxyzabcdef789abcpqr
4134*22dc650dSSadaf Ebrahimi
4135*22dc650dSSadaf Ebrahimi/./replace=$0
4136*22dc650dSSadaf Ebrahimi    a
4137*22dc650dSSadaf Ebrahimi
4138*22dc650dSSadaf Ebrahimi/(.)(.)/replace=$2+$1
4139*22dc650dSSadaf Ebrahimi    abc
4140*22dc650dSSadaf Ebrahimi
4141*22dc650dSSadaf Ebrahimi/(?<A>.)(?<B>.)/replace=$B+$A
4142*22dc650dSSadaf Ebrahimi    abc
4143*22dc650dSSadaf Ebrahimi
4144*22dc650dSSadaf Ebrahimi/(.)(.)/g,replace=$2$1
4145*22dc650dSSadaf Ebrahimi    abcdefgh
4146*22dc650dSSadaf Ebrahimi
4147*22dc650dSSadaf Ebrahimi/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=${*MARK}
4148*22dc650dSSadaf Ebrahimi    apple lemon blackberry
4149*22dc650dSSadaf Ebrahimi    apple strudel
4150*22dc650dSSadaf Ebrahimi    fruitless
4151*22dc650dSSadaf Ebrahimi
4152*22dc650dSSadaf Ebrahimi/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/replace=${*MARK} sauce,
4153*22dc650dSSadaf Ebrahimi    apple lemon blackberry
4154*22dc650dSSadaf Ebrahimi
4155*22dc650dSSadaf Ebrahimi/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=<$*MARK>
4156*22dc650dSSadaf Ebrahimi    apple lemon blackberry
4157*22dc650dSSadaf Ebrahimi    apple strudel
4158*22dc650dSSadaf Ebrahimi    fruitless
4159*22dc650dSSadaf Ebrahimi
4160*22dc650dSSadaf Ebrahimi/(*:pear)apple/g,replace=${*MARKING}
4161*22dc650dSSadaf Ebrahimi    apple lemon blackberry
4162*22dc650dSSadaf Ebrahimi
4163*22dc650dSSadaf Ebrahimi/(*:pear)apple/g,replace=${*MARK-time
4164*22dc650dSSadaf Ebrahimi    apple lemon blackberry
4165*22dc650dSSadaf Ebrahimi
4166*22dc650dSSadaf Ebrahimi/(*:pear)apple/g,replace=${*mark}
4167*22dc650dSSadaf Ebrahimi    apple lemon blackberry
4168*22dc650dSSadaf Ebrahimi
4169*22dc650dSSadaf Ebrahimi/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=<$*MARKET>
4170*22dc650dSSadaf Ebrahimi    apple lemon blackberry
4171*22dc650dSSadaf Ebrahimi
4172*22dc650dSSadaf Ebrahimi/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=[22]${*MARK}
4173*22dc650dSSadaf Ebrahimi    apple lemon blackberry
4174*22dc650dSSadaf Ebrahimi    apple lemon blackberry\=substitute_overflow_length
4175*22dc650dSSadaf Ebrahimi
4176*22dc650dSSadaf Ebrahimi/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=[23]${*MARK}
4177*22dc650dSSadaf Ebrahimi    apple lemon blackberry
4178*22dc650dSSadaf Ebrahimi
4179*22dc650dSSadaf Ebrahimi/abc/
4180*22dc650dSSadaf Ebrahimi    123abc123\=replace=[9]XYZ
4181*22dc650dSSadaf Ebrahimi    123abc123\=substitute_overflow_length,replace=[9]XYZ
4182*22dc650dSSadaf Ebrahimi    123abc123\=substitute_overflow_length,replace=[6]XYZ
4183*22dc650dSSadaf Ebrahimi    123abc123\=substitute_overflow_length,replace=[1]XYZ
4184*22dc650dSSadaf Ebrahimi    123abc123\=substitute_overflow_length,replace=[0]XYZ
4185*22dc650dSSadaf Ebrahimi
4186*22dc650dSSadaf Ebrahimi/a(b)c/
4187*22dc650dSSadaf Ebrahimi    123abc123\=replace=[9]x$1z
4188*22dc650dSSadaf Ebrahimi    123abc123\=substitute_overflow_length,replace=[9]x$1z
4189*22dc650dSSadaf Ebrahimi    123abc123\=substitute_overflow_length,replace=[6]x$1z
4190*22dc650dSSadaf Ebrahimi    123abc123\=substitute_overflow_length,replace=[1]x$1z
4191*22dc650dSSadaf Ebrahimi    123abc123\=substitute_overflow_length,replace=[0]x$1z
4192*22dc650dSSadaf Ebrahimi
4193*22dc650dSSadaf Ebrahimi"((?=(?(?=(?(?=(?(?=()))))))))"
4194*22dc650dSSadaf Ebrahimi    a
4195*22dc650dSSadaf Ebrahimi
4196*22dc650dSSadaf Ebrahimi"(?(?=)==)(((((((((?=)))))))))"
4197*22dc650dSSadaf Ebrahimi\= Expect no match
4198*22dc650dSSadaf Ebrahimi    a
4199*22dc650dSSadaf Ebrahimi
4200*22dc650dSSadaf Ebrahimi/(a)(b)|(c)/
4201*22dc650dSSadaf Ebrahimi    XcX\=ovector=2,get=1,get=2,get=3,get=4,getall
4202*22dc650dSSadaf Ebrahimi
4203*22dc650dSSadaf Ebrahimi/x(?=ab\K)/allow_lookaround_bsk
4204*22dc650dSSadaf Ebrahimi    xab\=get=0
4205*22dc650dSSadaf Ebrahimi    xab\=copy=0
4206*22dc650dSSadaf Ebrahimi    xab\=getall
4207*22dc650dSSadaf Ebrahimi
4208*22dc650dSSadaf Ebrahimi/(?<A>a)|(?<A>b)/dupnames
4209*22dc650dSSadaf Ebrahimi    a\=ovector=1,copy=A,get=A,get=2
4210*22dc650dSSadaf Ebrahimi    a\=ovector=2,copy=A,get=A,get=2
4211*22dc650dSSadaf Ebrahimi    b\=ovector=2,copy=A,get=A,get=2
4212*22dc650dSSadaf Ebrahimi
4213*22dc650dSSadaf Ebrahimi/a(b)c(d)/
4214*22dc650dSSadaf Ebrahimi    abc\=ph,copy=0,copy=1,getall
4215*22dc650dSSadaf Ebrahimi
4216*22dc650dSSadaf Ebrahimi/^abc/info
4217*22dc650dSSadaf Ebrahimi
4218*22dc650dSSadaf Ebrahimi/^abc/info,no_dotstar_anchor
4219*22dc650dSSadaf Ebrahimi
4220*22dc650dSSadaf Ebrahimi/.*\d/info,auto_callout
4221*22dc650dSSadaf Ebrahimi\= Expect no match
4222*22dc650dSSadaf Ebrahimi    aaa
4223*22dc650dSSadaf Ebrahimi
4224*22dc650dSSadaf Ebrahimi/.*\d/info,no_dotstar_anchor,auto_callout
4225*22dc650dSSadaf Ebrahimi\= Expect no match
4226*22dc650dSSadaf Ebrahimi    aaa
4227*22dc650dSSadaf Ebrahimi
4228*22dc650dSSadaf Ebrahimi/.*\d/dotall,info
4229*22dc650dSSadaf Ebrahimi
4230*22dc650dSSadaf Ebrahimi/.*\d/dotall,no_dotstar_anchor,info
4231*22dc650dSSadaf Ebrahimi
4232*22dc650dSSadaf Ebrahimi/(*NO_DOTSTAR_ANCHOR)(?s).*\d/info
4233*22dc650dSSadaf Ebrahimi
4234*22dc650dSSadaf Ebrahimi'^(?:(a)|b)(?(1)A|B)'
4235*22dc650dSSadaf Ebrahimi    aA123\=ovector=1
4236*22dc650dSSadaf Ebrahimi    aA123\=ovector=2
4237*22dc650dSSadaf Ebrahimi
4238*22dc650dSSadaf Ebrahimi'^(?:(?<AA>a)|b)(?(<AA>)A|B)'
4239*22dc650dSSadaf Ebrahimi    aA123\=ovector=1
4240*22dc650dSSadaf Ebrahimi    aA123\=ovector=2
4241*22dc650dSSadaf Ebrahimi
4242*22dc650dSSadaf Ebrahimi'^(?<AA>)(?:(?<AA>a)|b)(?(<AA>)A|B)'dupnames
4243*22dc650dSSadaf Ebrahimi    aA123\=ovector=1
4244*22dc650dSSadaf Ebrahimi    aA123\=ovector=2
4245*22dc650dSSadaf Ebrahimi    aA123\=ovector=3
4246*22dc650dSSadaf Ebrahimi
4247*22dc650dSSadaf Ebrahimi'^(?:(?<AA>X)|)(?:(?<AA>a)|b)\k{AA}'dupnames
4248*22dc650dSSadaf Ebrahimi    aa123\=ovector=1
4249*22dc650dSSadaf Ebrahimi    aa123\=ovector=2
4250*22dc650dSSadaf Ebrahimi    aa123\=ovector=3
4251*22dc650dSSadaf Ebrahimi
4252*22dc650dSSadaf Ebrahimi/(?<N111>(?J)(?<N111>1(111111)11|)1|1|)(?(<N111>)1)/
4253*22dc650dSSadaf Ebrahimi
4254*22dc650dSSadaf Ebrahimi/(?<N>(?J)(?<N>))(?-J)\k<N>/
4255*22dc650dSSadaf Ebrahimi
4256*22dc650dSSadaf Ebrahimi# Quantifiers are not allowed on condition assertions, but are otherwise
4257*22dc650dSSadaf Ebrahimi# OK in conditions.
4258*22dc650dSSadaf Ebrahimi
4259*22dc650dSSadaf Ebrahimi/(?(?=0)?)+/
4260*22dc650dSSadaf Ebrahimi
4261*22dc650dSSadaf Ebrahimi/(?(?=0)(?=00)?00765)/
4262*22dc650dSSadaf Ebrahimi     00765
4263*22dc650dSSadaf Ebrahimi
4264*22dc650dSSadaf Ebrahimi/(?(?=0)(?=00)?00765|(?!3).56)/
4265*22dc650dSSadaf Ebrahimi     00765
4266*22dc650dSSadaf Ebrahimi     456
4267*22dc650dSSadaf Ebrahimi\= Expect no match
4268*22dc650dSSadaf Ebrahimi     356
4269*22dc650dSSadaf Ebrahimi
4270*22dc650dSSadaf Ebrahimi'^(a)*+(\w)'
4271*22dc650dSSadaf Ebrahimi    g
4272*22dc650dSSadaf Ebrahimi    g\=ovector=1
4273*22dc650dSSadaf Ebrahimi
4274*22dc650dSSadaf Ebrahimi'^(?:a)*+(\w)'
4275*22dc650dSSadaf Ebrahimi    g
4276*22dc650dSSadaf Ebrahimi    g\=ovector=1
4277*22dc650dSSadaf Ebrahimi
4278*22dc650dSSadaf Ebrahimi# These two pattern showeds up compile-time bugs
4279*22dc650dSSadaf Ebrahimi
4280*22dc650dSSadaf Ebrahimi"((?2){0,1999}())?"
4281*22dc650dSSadaf Ebrahimi
4282*22dc650dSSadaf Ebrahimi/((?+1)(\1))/B
4283*22dc650dSSadaf Ebrahimi
4284*22dc650dSSadaf Ebrahimi# Callouts with string arguments
4285*22dc650dSSadaf Ebrahimi
4286*22dc650dSSadaf Ebrahimi/a(?C"/
4287*22dc650dSSadaf Ebrahimi
4288*22dc650dSSadaf Ebrahimi/a(?C"a/
4289*22dc650dSSadaf Ebrahimi
4290*22dc650dSSadaf Ebrahimi/a(?C"a"/
4291*22dc650dSSadaf Ebrahimi
4292*22dc650dSSadaf Ebrahimi/a(?C"a"bcde(?C"b")xyz/
4293*22dc650dSSadaf Ebrahimi
4294*22dc650dSSadaf Ebrahimi/a(?C"a)b""c")/B
4295*22dc650dSSadaf Ebrahimi
4296*22dc650dSSadaf Ebrahimi/ab(?C" any text with spaces ")cde/B
4297*22dc650dSSadaf Ebrahimi    abcde
4298*22dc650dSSadaf Ebrahimi    12abcde
4299*22dc650dSSadaf Ebrahimi
4300*22dc650dSSadaf Ebrahimi/^a(b)c(?C1)def/
4301*22dc650dSSadaf Ebrahimi      abcdef
4302*22dc650dSSadaf Ebrahimi
4303*22dc650dSSadaf Ebrahimi/^a(b)c(?C"AB")def/
4304*22dc650dSSadaf Ebrahimi      abcdef
4305*22dc650dSSadaf Ebrahimi
4306*22dc650dSSadaf Ebrahimi/^a(b)c(?C1)def/
4307*22dc650dSSadaf Ebrahimi      abcdef\=callout_capture
4308*22dc650dSSadaf Ebrahimi
4309*22dc650dSSadaf Ebrahimi/^a(b)c(?C{AB})def/B
4310*22dc650dSSadaf Ebrahimi      abcdef\=callout_capture
4311*22dc650dSSadaf Ebrahimi
4312*22dc650dSSadaf Ebrahimi/(?C`a``b`)(?C'a''b')(?C"a""b")(?C^a^^b^)(?C%a%%b%)(?C#a##b#)(?C$a$$b$)(?C{a}}b})/B,callout_info
4313*22dc650dSSadaf Ebrahimi
4314*22dc650dSSadaf Ebrahimi/(?:a(?C`code`)){3}/B
4315*22dc650dSSadaf Ebrahimi
4316*22dc650dSSadaf Ebrahimi/^(?(?C25)(?=abc)abcd|xyz)/B,callout_info
4317*22dc650dSSadaf Ebrahimi    abcdefg
4318*22dc650dSSadaf Ebrahimi    xyz123
4319*22dc650dSSadaf Ebrahimi
4320*22dc650dSSadaf Ebrahimi/^(?(?C$abc$)(?=abc)abcd|xyz)/B
4321*22dc650dSSadaf Ebrahimi    abcdefg
4322*22dc650dSSadaf Ebrahimi    xyz123
4323*22dc650dSSadaf Ebrahimi
4324*22dc650dSSadaf Ebrahimi/^ab(?C'first')cd(?C"second")ef/
4325*22dc650dSSadaf Ebrahimi    abcdefg
4326*22dc650dSSadaf Ebrahimi
4327*22dc650dSSadaf Ebrahimi/(?:a(?C`code`)){3}X/
4328*22dc650dSSadaf Ebrahimi    aaaXY
4329*22dc650dSSadaf Ebrahimi
4330*22dc650dSSadaf Ebrahimi# Binary zero in callout string
4331*22dc650dSSadaf Ebrahimi#  a  (  ?  C  '  x     z  '  )  b
4332*22dc650dSSadaf Ebrahimi/ 61 28 3f 43 27 78 00 7a 27 29 62/hex,callout_info
4333*22dc650dSSadaf Ebrahimi    abcdefgh
4334*22dc650dSSadaf Ebrahimi
4335*22dc650dSSadaf Ebrahimi/(?(?!)^)/
4336*22dc650dSSadaf Ebrahimi
4337*22dc650dSSadaf Ebrahimi/(?(?!)a|b)/
4338*22dc650dSSadaf Ebrahimi    bbb
4339*22dc650dSSadaf Ebrahimi\= Expect no match
4340*22dc650dSSadaf Ebrahimi    aaa
4341*22dc650dSSadaf Ebrahimi
4342*22dc650dSSadaf Ebrahimi# JIT gives a different error message for the infinite recursion
4343*22dc650dSSadaf Ebrahimi
4344*22dc650dSSadaf Ebrahimi"(*NO_JIT)((?2)+)((?1)){"
4345*22dc650dSSadaf Ebrahimi    abcd{
4346*22dc650dSSadaf Ebrahimi
4347*22dc650dSSadaf Ebrahimi# Perl fails to diagnose the absence of an assertion
4348*22dc650dSSadaf Ebrahimi
4349*22dc650dSSadaf Ebrahimi"(?(?<E>.*!.*)?)"
4350*22dc650dSSadaf Ebrahimi
4351*22dc650dSSadaf Ebrahimi"X((?2)()*+){2}+"B
4352*22dc650dSSadaf Ebrahimi
4353*22dc650dSSadaf Ebrahimi"X((?2)()*+){2}"B
4354*22dc650dSSadaf Ebrahimi
4355*22dc650dSSadaf Ebrahimi/(?<=\bABQ(3(?-7)))/
4356*22dc650dSSadaf Ebrahimi
4357*22dc650dSSadaf Ebrahimi/(?<=\bABQ(3(?+7)))/
4358*22dc650dSSadaf Ebrahimi
4359*22dc650dSSadaf Ebrahimi";(?<=()((?3))((?2)))"
4360*22dc650dSSadaf Ebrahimi
4361*22dc650dSSadaf Ebrahimi# Perl loops on this (PCRE2 used to!)
4362*22dc650dSSadaf Ebrahimi
4363*22dc650dSSadaf Ebrahimi/(?<=\Ka)/g,aftertext,allow_lookaround_bsk
4364*22dc650dSSadaf Ebrahimi    aaaaa
4365*22dc650dSSadaf Ebrahimi
4366*22dc650dSSadaf Ebrahimi/(?<=\Ka)/altglobal,aftertext,allow_lookaround_bsk
4367*22dc650dSSadaf Ebrahimi    aaaaa
4368*22dc650dSSadaf Ebrahimi
4369*22dc650dSSadaf Ebrahimi/((?2){73}(?2))((?1))/info
4370*22dc650dSSadaf Ebrahimi
4371*22dc650dSSadaf Ebrahimi/abc/
4372*22dc650dSSadaf Ebrahimi\= Expect no match
4373*22dc650dSSadaf Ebrahimi    \[9x!xxx(]{9999}
4374*22dc650dSSadaf Ebrahimi
4375*22dc650dSSadaf Ebrahimi/(abc)*/
4376*22dc650dSSadaf Ebrahimi    \[abc]{5}
4377*22dc650dSSadaf Ebrahimi
4378*22dc650dSSadaf Ebrahimi/^/gm
4379*22dc650dSSadaf Ebrahimi    \n\n\n
4380*22dc650dSSadaf Ebrahimi
4381*22dc650dSSadaf Ebrahimi/^/gm,alt_circumflex
4382*22dc650dSSadaf Ebrahimi    \n\n\n
4383*22dc650dSSadaf Ebrahimi
4384*22dc650dSSadaf Ebrahimi/((((((((x))))))))\81/
4385*22dc650dSSadaf Ebrahimi    xx1
4386*22dc650dSSadaf Ebrahimi
4387*22dc650dSSadaf Ebrahimi/((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((x))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))\80/
4388*22dc650dSSadaf Ebrahimi    xx
4389*22dc650dSSadaf Ebrahimi
4390*22dc650dSSadaf Ebrahimi/\80/
4391*22dc650dSSadaf Ebrahimi
4392*22dc650dSSadaf Ebrahimi/A\8B\9C/
4393*22dc650dSSadaf Ebrahimi    A8B9C
4394*22dc650dSSadaf Ebrahimi
4395*22dc650dSSadaf Ebrahimi/(?x:((?'a')) # comment (with parentheses) and | vertical
4396*22dc650dSSadaf Ebrahimi(?-x:#not a comment (?'b')) # this is a comment ()
4397*22dc650dSSadaf Ebrahimi(?'c')) # not a comment (?'d')/info
4398*22dc650dSSadaf Ebrahimi
4399*22dc650dSSadaf Ebrahimi/(?|(?'a')(2)(?'b')|(?'a')(?'a')(3))/I,dupnames
4400*22dc650dSSadaf Ebrahimi    A23B
4401*22dc650dSSadaf Ebrahimi    B32A
4402*22dc650dSSadaf Ebrahimi
4403*22dc650dSSadaf Ebrahimi# These are some patterns that used to cause buffer overflows or other errors
4404*22dc650dSSadaf Ebrahimi# while compiling.
4405*22dc650dSSadaf Ebrahimi
4406*22dc650dSSadaf Ebrahimi/.((?2)(?R)|\1|$)()/B
4407*22dc650dSSadaf Ebrahimi
4408*22dc650dSSadaf Ebrahimi/.((?3)(?R)()(?2)|\1|$)()/B
4409*22dc650dSSadaf Ebrahimi
4410*22dc650dSSadaf Ebrahimi/(\9*+(?2);\3++()2|)++{/
4411*22dc650dSSadaf Ebrahimi
4412*22dc650dSSadaf Ebrahimi/\V\x85\9*+((?2)\3++()2)*:2/
4413*22dc650dSSadaf Ebrahimi
4414*22dc650dSSadaf Ebrahimi/(((?(R)){0,2}) (?'x'((?'R')((?'R')))))/dupnames
4415*22dc650dSSadaf Ebrahimi
4416*22dc650dSSadaf Ebrahimi/(((?(X)){0,2}) (?'x'((?'X')((?'X')))))/dupnames
4417*22dc650dSSadaf Ebrahimi
4418*22dc650dSSadaf Ebrahimi/(((?(R)){0,2}) (?'x'((?'X')((?'R')))))/
4419*22dc650dSSadaf Ebrahimi
4420*22dc650dSSadaf Ebrahimi"(?J)(?'d'(?'d'\g{d}))"
4421*22dc650dSSadaf Ebrahimi
4422*22dc650dSSadaf Ebrahimi"(?=!((?2)(?))({8(?<=(?1){29}8bbbb\x16\xd\xc6^($(\xa9H4){4}h}?1)B))\x15')"
4423*22dc650dSSadaf Ebrahimi
4424*22dc650dSSadaf Ebrahimi/A(?'')Z/
4425*22dc650dSSadaf Ebrahimi
4426*22dc650dSSadaf Ebrahimi"(?J:(?|(?'R')(\k'R')|((?'R'))))"
4427*22dc650dSSadaf Ebrahimi
4428*22dc650dSSadaf Ebrahimi/(?<=|(\,\$(?73591620449005828816)\xa8.{7}){6}\x09)/
4429*22dc650dSSadaf Ebrahimi
4430*22dc650dSSadaf Ebrahimi/^(?:(?(1)x|)+)+$()/B
4431*22dc650dSSadaf Ebrahimi
4432*22dc650dSSadaf Ebrahimi/[[:>:]](?<)/
4433*22dc650dSSadaf Ebrahimi
4434*22dc650dSSadaf Ebrahimi/((?x)(*:0))#(?'/
4435*22dc650dSSadaf Ebrahimi
4436*22dc650dSSadaf Ebrahimi/(?C$[$)(?<]/
4437*22dc650dSSadaf Ebrahimi
4438*22dc650dSSadaf Ebrahimi/(?C$)$)(?<]/
4439*22dc650dSSadaf Ebrahimi
4440*22dc650dSSadaf Ebrahimi/(?(R))*+/B
4441*22dc650dSSadaf Ebrahimi    abcd
4442*22dc650dSSadaf Ebrahimi
4443*22dc650dSSadaf Ebrahimi/((?x)(?#))#(?'/
4444*22dc650dSSadaf Ebrahimi
4445*22dc650dSSadaf Ebrahimi/((?x)(?#))#(?'abc')/I
4446*22dc650dSSadaf Ebrahimi
4447*22dc650dSSadaf Ebrahimi/[[:\\](?<[::]/
4448*22dc650dSSadaf Ebrahimi
4449*22dc650dSSadaf Ebrahimi/[[:\\](?'abc')[a:]/I
4450*22dc650dSSadaf Ebrahimi
4451*22dc650dSSadaf Ebrahimi"[[[.\xe8Nq\xffq\xff\xe0\x2|||::Nq\xffq\xff\xe0\x6\x2|||::[[[:[::::::[[[[[::::::::[:[[[:[:::[[[[[[[[[[[[:::::::::::::::::[[.\xe8Nq\xffq\xff\xe0\x2|||::Nq\xffq\xff\xe0\x6\x2|||::[[[:[::::::[[[[[::::::::[:[[[:[:::[[[[[[[[[[[[[[:::E[[[:[:[[:[:::[[:::E[[[:[:[[:'[:::::E[[[:[::::::[[[:[[[[[[[::E[[[:[::::::[[[:[[[[[[[[:[[::[::::[[:::::::[[:[[[[[[[:[[::[:[[:[~"
4452*22dc650dSSadaf Ebrahimi
4453*22dc650dSSadaf Ebrahimi/()(?(R)0)*+/B
4454*22dc650dSSadaf Ebrahimi
4455*22dc650dSSadaf Ebrahimi/(?R-:(?</
4456*22dc650dSSadaf Ebrahimi
4457*22dc650dSSadaf Ebrahimi/(?R-:(?<)/
4458*22dc650dSSadaf Ebrahimi
4459*22dc650dSSadaf Ebrahimi/(?(?C{\Q})(?!(?'/
4460*22dc650dSSadaf Ebrahimi
4461*22dc650dSSadaf Ebrahimi/(?(?C{\Q})(?!(?'abc')))/I
4462*22dc650dSSadaf Ebrahimi
4463*22dc650dSSadaf Ebrahimi/(?1){3918}(((((0(\k'R'))))(?J)(?'R'(?'R'\3){99})))/I
4464*22dc650dSSadaf Ebrahimi
4465*22dc650dSSadaf Ebrahimi/(?|(aaa)|(b))\g{1}/I
4466*22dc650dSSadaf Ebrahimi
4467*22dc650dSSadaf Ebrahimi/(?|(aaa)|(b))(?1)/I
4468*22dc650dSSadaf Ebrahimi
4469*22dc650dSSadaf Ebrahimi/(?|(aaa)|(b))/I
4470*22dc650dSSadaf Ebrahimi
4471*22dc650dSSadaf Ebrahimi/(?|(?'a'aaa)|(?'a'b))\k'a'/I
4472*22dc650dSSadaf Ebrahimi
4473*22dc650dSSadaf Ebrahimi/(?|(?'a'aaa)|(?'a'b))(?'a'cccc)\k'a'/I,dupnames
4474*22dc650dSSadaf Ebrahimi
4475*22dc650dSSadaf Ebrahimi/ab{3cd/
4476*22dc650dSSadaf Ebrahimi    ab{3cd
4477*22dc650dSSadaf Ebrahimi
4478*22dc650dSSadaf Ebrahimi/ab{3,cd/
4479*22dc650dSSadaf Ebrahimi    ab{3,cd
4480*22dc650dSSadaf Ebrahimi
4481*22dc650dSSadaf Ebrahimi/ab{3,4a}cd/
4482*22dc650dSSadaf Ebrahimi    ab{3,4a}cd
4483*22dc650dSSadaf Ebrahimi
4484*22dc650dSSadaf Ebrahimi/{4,5a}bc/
4485*22dc650dSSadaf Ebrahimi    {4,5a}bc
4486*22dc650dSSadaf Ebrahimi
4487*22dc650dSSadaf Ebrahimi/\x0{ab}/
4488*22dc650dSSadaf Ebrahimi    \0{ab}
4489*22dc650dSSadaf Ebrahimi
4490*22dc650dSSadaf Ebrahimi/^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/
4491*22dc650dSSadaf Ebrahimi    ababababbbabZXXXX
4492*22dc650dSSadaf Ebrahimi
4493*22dc650dSSadaf Ebrahimi/.*?a(*PRUNE)b/
4494*22dc650dSSadaf Ebrahimi    aab
4495*22dc650dSSadaf Ebrahimi
4496*22dc650dSSadaf Ebrahimi/.*?a(*PRUNE)b/s
4497*22dc650dSSadaf Ebrahimi    aab
4498*22dc650dSSadaf Ebrahimi
4499*22dc650dSSadaf Ebrahimi/^a(*PRUNE)b/s
4500*22dc650dSSadaf Ebrahimi\= Expect no match
4501*22dc650dSSadaf Ebrahimi    aab
4502*22dc650dSSadaf Ebrahimi
4503*22dc650dSSadaf Ebrahimi/.*?a(*SKIP)b/
4504*22dc650dSSadaf Ebrahimi    aab
4505*22dc650dSSadaf Ebrahimi
4506*22dc650dSSadaf Ebrahimi/(?(8000000000/
4507*22dc650dSSadaf Ebrahimi
4508*22dc650dSSadaf Ebrahimi/((?(R8000000000)))/
4509*22dc650dSSadaf Ebrahimi
4510*22dc650dSSadaf Ebrahimi/0(?0)|(1)(*THEN)(*SKIP:0)(*FAIL)/
4511*22dc650dSSadaf Ebrahimi\= Expect no match
4512*22dc650dSSadaf Ebrahimi    01
4513*22dc650dSSadaf Ebrahimi
4514*22dc650dSSadaf Ebrahimi/(?(1)()\983040\2)/
4515*22dc650dSSadaf Ebrahimi
4516*22dc650dSSadaf Ebrahimi/(*LIMIT_MATCH=)abc/
4517*22dc650dSSadaf Ebrahimi
4518*22dc650dSSadaf Ebrahimi/(*CRLF)(*LIMIT_MATCH=)abc/
4519*22dc650dSSadaf Ebrahimi
4520*22dc650dSSadaf Ebrahimi/(?:ab)?(?:ab)(?:ab)/
4521*22dc650dSSadaf Ebrahimi    abab
4522*22dc650dSSadaf Ebrahimi    ababab
4523*22dc650dSSadaf Ebrahimi\= Expect no match
4524*22dc650dSSadaf Ebrahimi    aba
4525*22dc650dSSadaf Ebrahimi
4526*22dc650dSSadaf Ebrahimi/((*MARK:A))++a(*SKIP:B)b/
4527*22dc650dSSadaf Ebrahimi\= Expect no match
4528*22dc650dSSadaf Ebrahimi    aacb
4529*22dc650dSSadaf Ebrahimi
4530*22dc650dSSadaf Ebrahimi/(*MARK:a\zb)z/alt_verbnames
4531*22dc650dSSadaf Ebrahimi
4532*22dc650dSSadaf Ebrahimi/(*:ab\t(d\)c)xxx/
4533*22dc650dSSadaf Ebrahimi
4534*22dc650dSSadaf Ebrahimi/(*:ab\t(d\)c)xxx/alt_verbnames,mark
4535*22dc650dSSadaf Ebrahimi    cxxxz
4536*22dc650dSSadaf Ebrahimi
4537*22dc650dSSadaf Ebrahimi/(*:A\Qxx)x\EB)x/alt_verbnames,mark
4538*22dc650dSSadaf Ebrahimi    x
4539*22dc650dSSadaf Ebrahimi
4540*22dc650dSSadaf Ebrahimi/(*:A\ExxxB)x/alt_verbnames,mark
4541*22dc650dSSadaf Ebrahimi    x
4542*22dc650dSSadaf Ebrahimi
4543*22dc650dSSadaf Ebrahimi/(*: A \ and #comment
4544*22dc650dSSadaf Ebrahimi     \ B)x/x,alt_verbnames,mark
4545*22dc650dSSadaf Ebrahimi    x
4546*22dc650dSSadaf Ebrahimi
4547*22dc650dSSadaf Ebrahimi/(*: A \ and #comment
4548*22dc650dSSadaf Ebrahimi     \ B)x/alt_verbnames,mark
4549*22dc650dSSadaf Ebrahimi    x
4550*22dc650dSSadaf Ebrahimi
4551*22dc650dSSadaf Ebrahimi/(*: A \ and #comment
4552*22dc650dSSadaf Ebrahimi     \ B)x/x,mark
4553*22dc650dSSadaf Ebrahimi    x
4554*22dc650dSSadaf Ebrahimi
4555*22dc650dSSadaf Ebrahimi/(*: A \ and #comment
4556*22dc650dSSadaf Ebrahimi     \ B)x/mark
4557*22dc650dSSadaf Ebrahimi    x
4558*22dc650dSSadaf Ebrahimi
4559*22dc650dSSadaf Ebrahimi/(*:A
4560*22dc650dSSadaf EbrahimiB)x/alt_verbnames,mark
4561*22dc650dSSadaf Ebrahimi    x
4562*22dc650dSSadaf Ebrahimi
4563*22dc650dSSadaf Ebrahimi/(*:abc\Qpqr)/alt_verbnames
4564*22dc650dSSadaf Ebrahimi
4565*22dc650dSSadaf Ebrahimi/abc/use_offset_limit
4566*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=100
4567*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=9
4568*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=4
4569*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=4,offset=4
4570*22dc650dSSadaf Ebrahimi\= Expect no match
4571*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=4,offset=5
4572*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=3
4573*22dc650dSSadaf Ebrahimi
4574*22dc650dSSadaf Ebrahimi/(?<=abc)/use_offset_limit
4575*22dc650dSSadaf Ebrahimi    1234abc\=offset_limit=7
4576*22dc650dSSadaf Ebrahimi\= Expect no match
4577*22dc650dSSadaf Ebrahimi    1234abc\=offset_limit=6
4578*22dc650dSSadaf Ebrahimi
4579*22dc650dSSadaf Ebrahimi/A/g,replace=-,use_offset_limit
4580*22dc650dSSadaf Ebrahimi    XAXAXAXAXA\=offset_limit=4
4581*22dc650dSSadaf Ebrahimi
4582*22dc650dSSadaf Ebrahimi/abc/
4583*22dc650dSSadaf Ebrahimi\= Expect error
4584*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=4
4585*22dc650dSSadaf Ebrahimi
4586*22dc650dSSadaf Ebrahimi/^\w/m,use_offset_limit
4587*22dc650dSSadaf Ebrahimi    \n..\naa\=offset_limit=3
4588*22dc650dSSadaf Ebrahimi    \n..\naa\=offset_limit=4
4589*22dc650dSSadaf Ebrahimi
4590*22dc650dSSadaf Ebrahimi/abcd/null_context
4591*22dc650dSSadaf Ebrahimi    abcd\=null_context
4592*22dc650dSSadaf Ebrahimi\= Expect error - not allowed together
4593*22dc650dSSadaf Ebrahimi    abcd\=null_context,find_limits
4594*22dc650dSSadaf Ebrahimi    abcd\=allusedtext,startchar
4595*22dc650dSSadaf Ebrahimi
4596*22dc650dSSadaf Ebrahimi/abcd/replace=w\rx\x82y\o{333}z(\Q12\$34$$\x34\E5$$),substitute_extended
4597*22dc650dSSadaf Ebrahimi    abcd
4598*22dc650dSSadaf Ebrahimi
4599*22dc650dSSadaf Ebrahimi/abcd/replace=w\rx\x82y\o{333}z(\Q12\$34$$\x34\E5$$),substitute_extended,substitute_literal
4600*22dc650dSSadaf Ebrahimi    >>abcd<<
4601*22dc650dSSadaf Ebrahimi
4602*22dc650dSSadaf Ebrahimi/abcd/g,replace=\$1$2\,substitute_literal
4603*22dc650dSSadaf Ebrahimi    XabcdYabcdZ
4604*22dc650dSSadaf Ebrahimi
4605*22dc650dSSadaf Ebrahimi/a(bc)(DE)/replace=a\u$1\U$1\E$1\l$2\L$2\Eab\Uab\LYZ\EDone,substitute_extended
4606*22dc650dSSadaf Ebrahimi    abcDE
4607*22dc650dSSadaf Ebrahimi
4608*22dc650dSSadaf Ebrahimi/abcd/replace=xy\kz,substitute_extended
4609*22dc650dSSadaf Ebrahimi    abcd
4610*22dc650dSSadaf Ebrahimi
4611*22dc650dSSadaf Ebrahimi/a(?:(b)|(c))/substitute_extended,replace=X${1:+1:-1}X${2:+2:-2}
4612*22dc650dSSadaf Ebrahimi    ab
4613*22dc650dSSadaf Ebrahimi    ac
4614*22dc650dSSadaf Ebrahimi    ab\=replace=${1:+$1\:$1:$2}
4615*22dc650dSSadaf Ebrahimi    ac\=replace=${1:+$1\:$1:$2}
4616*22dc650dSSadaf Ebrahimi    >>ac<<\=replace=${1:+$1\:$1:$2},substitute_literal
4617*22dc650dSSadaf Ebrahimi
4618*22dc650dSSadaf Ebrahimi/a(?:(b)|(c))/substitute_extended,replace=X${1:-1:-1}X${2:-2:-2}
4619*22dc650dSSadaf Ebrahimi    ab
4620*22dc650dSSadaf Ebrahimi    ac
4621*22dc650dSSadaf Ebrahimi
4622*22dc650dSSadaf Ebrahimi/(a)/substitute_extended,replace=>${1:+\Q$1:{}$$\E+\U$1}<
4623*22dc650dSSadaf Ebrahimi    a
4624*22dc650dSSadaf Ebrahimi
4625*22dc650dSSadaf Ebrahimi/X(b)Y/substitute_extended
4626*22dc650dSSadaf Ebrahimi    XbY\=replace=x${1:+$1\U$1}y
4627*22dc650dSSadaf Ebrahimi    XbY\=replace=\Ux${1:+$1$1}y
4628*22dc650dSSadaf Ebrahimi
4629*22dc650dSSadaf Ebrahimi/a/substitute_extended,replace=${*MARK:+a:b}
4630*22dc650dSSadaf Ebrahimi    a
4631*22dc650dSSadaf Ebrahimi
4632*22dc650dSSadaf Ebrahimi/(abcd)/replace=${1:+xy\kz},substitute_extended
4633*22dc650dSSadaf Ebrahimi    abcd
4634*22dc650dSSadaf Ebrahimi
4635*22dc650dSSadaf Ebrahimi/(abcd)/
4636*22dc650dSSadaf Ebrahimi    abcd\=replace=${1:+xy\kz},substitute_extended
4637*22dc650dSSadaf Ebrahimi
4638*22dc650dSSadaf Ebrahimi/abcd/substitute_extended,replace=>$1<
4639*22dc650dSSadaf Ebrahimi    abcd
4640*22dc650dSSadaf Ebrahimi
4641*22dc650dSSadaf Ebrahimi/abcd/substitute_extended,replace=>xxx${xyz}<<<
4642*22dc650dSSadaf Ebrahimi    abcd
4643*22dc650dSSadaf Ebrahimi
4644*22dc650dSSadaf Ebrahimi/(?J)(?:(?<A>a)|(?<A>b))/replace=<$A>
4645*22dc650dSSadaf Ebrahimi    [a]
4646*22dc650dSSadaf Ebrahimi    [b]
4647*22dc650dSSadaf Ebrahimi\= Expect error
4648*22dc650dSSadaf Ebrahimi    (a)\=ovector=1
4649*22dc650dSSadaf Ebrahimi
4650*22dc650dSSadaf Ebrahimi/(a)|(b)/replace=<$1>
4651*22dc650dSSadaf Ebrahimi\= Expect error
4652*22dc650dSSadaf Ebrahimi    b
4653*22dc650dSSadaf Ebrahimi
4654*22dc650dSSadaf Ebrahimi/(aa)(BB)/substitute_extended,replace=\U$1\L$2\E$1..\U$1\l$2$1
4655*22dc650dSSadaf Ebrahimi    aaBB
4656*22dc650dSSadaf Ebrahimi
4657*22dc650dSSadaf Ebrahimi/abcd/replace=wxyz,substitute_matched
4658*22dc650dSSadaf Ebrahimi    abcd
4659*22dc650dSSadaf Ebrahimi    pqrs
4660*22dc650dSSadaf Ebrahimi
4661*22dc650dSSadaf Ebrahimi/abcd/g
4662*22dc650dSSadaf Ebrahimi    >abcd1234abcd5678<\=replace=wxyz,substitute_matched
4663*22dc650dSSadaf Ebrahimi
4664*22dc650dSSadaf Ebrahimi/^(o(\1{72}{\"{\\{00000059079}\d*){74}}){19}/I
4665*22dc650dSSadaf Ebrahimi
4666*22dc650dSSadaf Ebrahimi/((p(?'K/
4667*22dc650dSSadaf Ebrahimi
4668*22dc650dSSadaf Ebrahimi/((p(?'K/no_auto_capture
4669*22dc650dSSadaf Ebrahimi
4670*22dc650dSSadaf Ebrahimi/abc/replace=A$3123456789Z
4671*22dc650dSSadaf Ebrahimi    abc
4672*22dc650dSSadaf Ebrahimi
4673*22dc650dSSadaf Ebrahimi/(?<!a{65535}a{5})x/I
4674*22dc650dSSadaf Ebrahimi
4675*22dc650dSSadaf Ebrahimi/(?<!a{65535})x/I
4676*22dc650dSSadaf Ebrahimi
4677*22dc650dSSadaf Ebrahimi/(?=a\K)/replace=z,allow_lookaround_bsk
4678*22dc650dSSadaf Ebrahimi    BaCaD
4679*22dc650dSSadaf Ebrahimi
4680*22dc650dSSadaf Ebrahimi/(?<=\K.)/g,replace=-,allow_lookaround_bsk
4681*22dc650dSSadaf Ebrahimi    ab
4682*22dc650dSSadaf Ebrahimi
4683*22dc650dSSadaf Ebrahimi/(?'abcdefghijklmnopqrstuvwxyzABCDEFGabcdefghijklmnopqrstuvwxyzABCDEabcdefghijklmnopqrstuvwxyzABCDEabcdefghijklmnopqrstuvwxyzABCDEFGH'toolong)/
4684*22dc650dSSadaf Ebrahimi
4685*22dc650dSSadaf Ebrahimi/(?'abcdefghijklmnopqrstuvwxyzABCDEFGabcdefghijklmnopqrstuvwxyzABCDEabcdefghijklmnopqrstuvwxyzABCDEabcdefghijklmnopqrstuvwxyzABCDEFG'justright)/
4686*22dc650dSSadaf Ebrahimi
4687*22dc650dSSadaf Ebrahimi# These two use zero-termination
4688*22dc650dSSadaf Ebrahimi/abcd/max_pattern_length=3
4689*22dc650dSSadaf Ebrahimi
4690*22dc650dSSadaf Ebrahimi/abc/max_pattern_length=3
4691*22dc650dSSadaf Ebrahimi
4692*22dc650dSSadaf Ebrahimi# These two, being hex, pass the length
4693*22dc650dSSadaf Ebrahimi/abcdefab/hex,max_pattern_length=3
4694*22dc650dSSadaf Ebrahimi
4695*22dc650dSSadaf Ebrahimi/abcdef/hex,max_pattern_length=3
4696*22dc650dSSadaf Ebrahimi
4697*22dc650dSSadaf Ebrahimi# Test compiled length limit
4698*22dc650dSSadaf Ebrahimi/(abcdefg){10}/max_pattern_compiled_length=100
4699*22dc650dSSadaf Ebrahimi
4700*22dc650dSSadaf Ebrahimi# These patterns used to take a long time to compile
4701*22dc650dSSadaf Ebrahimi
4702*22dc650dSSadaf Ebrahimi"(.*)
4703*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4704*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4705*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))"xI
4706*22dc650dSSadaf Ebrahimi
4707*22dc650dSSadaf Ebrahimi"(?<=a()
4708*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4709*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4710*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4711*22dc650dSSadaf Ebrahimia)"xI
4712*22dc650dSSadaf Ebrahimi
4713*22dc650dSSadaf Ebrahimi"(?|()|())(.*)
4714*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4715*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4716*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))"xI
4717*22dc650dSSadaf Ebrahimi
4718*22dc650dSSadaf Ebrahimi"(?|()|())(?<=a()
4719*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4720*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4721*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4722*22dc650dSSadaf Ebrahimia)"xI
4723*22dc650dSSadaf Ebrahimi
4724*22dc650dSSadaf Ebrahimi# Test the use of malloc for caching group information when there are more
4725*22dc650dSSadaf Ebrahimi# groups than fit into the on-stack workspace.
4726*22dc650dSSadaf Ebrahimi
4727*22dc650dSSadaf Ebrahimi/\[()]{1024}/I,expand
4728*22dc650dSSadaf Ebrahimi
4729*22dc650dSSadaf Ebrahimi# Test minlength capped at 65535
4730*22dc650dSSadaf Ebrahimi
4731*22dc650dSSadaf Ebrahimi/(A{65000})\1{65000}/I
4732*22dc650dSSadaf Ebrahimi
4733*22dc650dSSadaf Ebrahimi# Test group scans when numbers are not unique
4734*22dc650dSSadaf Ebrahimi
4735*22dc650dSSadaf Ebrahimi/(?|()+|(a)+)/BI
4736*22dc650dSSadaf Ebrahimi
4737*22dc650dSSadaf Ebrahimi/(?|(a)+|()+)/BI
4738*22dc650dSSadaf Ebrahimi
4739*22dc650dSSadaf Ebrahimi/(?|()|(a))/BI
4740*22dc650dSSadaf Ebrahimi
4741*22dc650dSSadaf Ebrahimi/(?|(a)|())/BI
4742*22dc650dSSadaf Ebrahimi
4743*22dc650dSSadaf Ebrahimi# Test CRLF handling in empty string substitutions
4744*22dc650dSSadaf Ebrahimi
4745*22dc650dSSadaf Ebrahimi/^$/gm,newline=anycrlf,replace=-
4746*22dc650dSSadaf Ebrahimi    X\r\n\r\nY
4747*22dc650dSSadaf Ebrahimi
4748*22dc650dSSadaf Ebrahimi/^$/gm,newline=crlf,replace=-
4749*22dc650dSSadaf Ebrahimi    X\r\n\r\nY
4750*22dc650dSSadaf Ebrahimi
4751*22dc650dSSadaf Ebrahimi/^$/gm,newline=any,replace=-
4752*22dc650dSSadaf Ebrahimi    X\r\n\r\nY
4753*22dc650dSSadaf Ebrahimi
4754*22dc650dSSadaf Ebrahimi"(*ANYCRLF)(?m)^(.*[^0-9\r\n].*|)$"g,replace=NaN
4755*22dc650dSSadaf Ebrahimi    15\r\nfoo\r\n20\r\nbar\r\nbaz\r\n\r\n20
4756*22dc650dSSadaf Ebrahimi
4757*22dc650dSSadaf Ebrahimi/a[[:punct:]b]/bincode
4758*22dc650dSSadaf Ebrahimi
4759*22dc650dSSadaf Ebrahimi/a[b[:punct:]]/bincode
4760*22dc650dSSadaf Ebrahimi
4761*22dc650dSSadaf Ebrahimi/L(?#(|++<!(2)?/B
4762*22dc650dSSadaf Ebrahimi
4763*22dc650dSSadaf Ebrahimi/L(?#(|++<!(2)?/B,no_auto_possess
4764*22dc650dSSadaf Ebrahimi
4765*22dc650dSSadaf Ebrahimi/L(?#(|++<!(2)?/B,auto_callout
4766*22dc650dSSadaf Ebrahimi
4767*22dc650dSSadaf Ebrahimi/L(?#(|++<!(2)?/B,no_auto_possess,auto_callout
4768*22dc650dSSadaf Ebrahimi
4769*22dc650dSSadaf Ebrahimi/(A*)\E+/B,auto_callout
4770*22dc650dSSadaf Ebrahimi
4771*22dc650dSSadaf Ebrahimi/()\Q\E*]/B,auto_callout
4772*22dc650dSSadaf Ebrahimi    a[bc]d
4773*22dc650dSSadaf Ebrahimi
4774*22dc650dSSadaf Ebrahimi/\x8a+f|;T?(*:;.'?`(\xeap ){![^()!y*''C*(?';]{1;(\x08)/B,alt_verbnames,dupnames,extended
4775*22dc650dSSadaf Ebrahimi
4776*22dc650dSSadaf Ebrahimi# Tests for NULL characters in comments and verb "names" and callouts
4777*22dc650dSSadaf Ebrahimi
4778*22dc650dSSadaf Ebrahimi# /A#B\x00C\x0aZ/
4779*22dc650dSSadaf Ebrahimi/41 23 42 00 43 0a 5a/Bx,hex
4780*22dc650dSSadaf Ebrahimi
4781*22dc650dSSadaf Ebrahimi# /A+#B\x00C\x0a+/
4782*22dc650dSSadaf Ebrahimi/41 2b 23 42 00 43 0a 2b/Bx,hex
4783*22dc650dSSadaf Ebrahimi
4784*22dc650dSSadaf Ebrahimi# /A(*:B\x00W#X\00Y\x0aC)Z/
4785*22dc650dSSadaf Ebrahimi/41 28 2a 3a 42 00 57 23 58 00 59 0a 43 29 5a/Bx,hex,alt_verbnames
4786*22dc650dSSadaf Ebrahimi
4787*22dc650dSSadaf Ebrahimi# /A(*:B\x00W#X\00Y\x0aC)Z/
4788*22dc650dSSadaf Ebrahimi/41 28 2a 3a 42 00 57 23 58 00 59 0a 43 29 5a/Bx,hex
4789*22dc650dSSadaf Ebrahimi
4790*22dc650dSSadaf Ebrahimi# /A(?C{X\x00Y})B/
4791*22dc650dSSadaf Ebrahimi/41 28 3f 43 7b 58 00 59 7d 29 42/B,hex
4792*22dc650dSSadaf Ebrahimi
4793*22dc650dSSadaf Ebrahimi# /A(?#X\x00Y)B/
4794*22dc650dSSadaf Ebrahimi/41 28 3f 23 7b 00 7d 29 42/B,hex
4795*22dc650dSSadaf Ebrahimi
4796*22dc650dSSadaf Ebrahimi# Tests for leading comment in extended patterns
4797*22dc650dSSadaf Ebrahimi
4798*22dc650dSSadaf Ebrahimi/ (?-x):?/extended
4799*22dc650dSSadaf Ebrahimi
4800*22dc650dSSadaf Ebrahimi/(?-x):?/extended
4801*22dc650dSSadaf Ebrahimi
4802*22dc650dSSadaf Ebrahimi/0b 28 3f 2d 78 29 3a/hex,extended
4803*22dc650dSSadaf Ebrahimi
4804*22dc650dSSadaf Ebrahimi/#comment
4805*22dc650dSSadaf Ebrahimi(?-x):?/extended
4806*22dc650dSSadaf Ebrahimi
4807*22dc650dSSadaf Ebrahimi/(8(*:6^\x09x\xa6l\)6!|\xd0:[^:|)\x09d\Z\d{85*m(?'(?<1!)*\W[*\xff]!!h\w]*\xbe;/alt_bsux,alt_verbnames,allow_empty_class,dollar_endonly,extended,multiline,never_utf,no_dotstar_anchor,no_start_optimize
4808*22dc650dSSadaf Ebrahimi
4809*22dc650dSSadaf Ebrahimi/a|(b)c/replace=>$1<,substitute_unset_empty
4810*22dc650dSSadaf Ebrahimi    cat
4811*22dc650dSSadaf Ebrahimi    xbcom
4812*22dc650dSSadaf Ebrahimi
4813*22dc650dSSadaf Ebrahimi/a|(b)c/
4814*22dc650dSSadaf Ebrahimi    cat\=replace=>$1<
4815*22dc650dSSadaf Ebrahimi    cat\=replace=>$1<,substitute_unset_empty
4816*22dc650dSSadaf Ebrahimi    xbcom\=replace=>$1<,substitute_unset_empty
4817*22dc650dSSadaf Ebrahimi
4818*22dc650dSSadaf Ebrahimi/a|(b)c/substitute_extended
4819*22dc650dSSadaf Ebrahimi    cat\=replace=>${2:-xx}<
4820*22dc650dSSadaf Ebrahimi    cat\=replace=>${2:-xx}<,substitute_unknown_unset
4821*22dc650dSSadaf Ebrahimi    cat\=replace=>${X:-xx}<,substitute_unknown_unset
4822*22dc650dSSadaf Ebrahimi
4823*22dc650dSSadaf Ebrahimi/a|(?'X'b)c/replace=>$X<,substitute_unset_empty
4824*22dc650dSSadaf Ebrahimi    cat
4825*22dc650dSSadaf Ebrahimi    xbcom
4826*22dc650dSSadaf Ebrahimi
4827*22dc650dSSadaf Ebrahimi/a|(?'X'b)c/replace=>$Y<,substitute_unset_empty
4828*22dc650dSSadaf Ebrahimi    cat
4829*22dc650dSSadaf Ebrahimi    cat\=substitute_unknown_unset
4830*22dc650dSSadaf Ebrahimi    cat\=substitute_unknown_unset,-substitute_unset_empty
4831*22dc650dSSadaf Ebrahimi
4832*22dc650dSSadaf Ebrahimi/a|(b)c/replace=>$2<,substitute_unset_empty
4833*22dc650dSSadaf Ebrahimi    cat
4834*22dc650dSSadaf Ebrahimi    cat\=substitute_unknown_unset
4835*22dc650dSSadaf Ebrahimi    cat\=substitute_unknown_unset,-substitute_unset_empty
4836*22dc650dSSadaf Ebrahimi
4837*22dc650dSSadaf Ebrahimi/()()()/use_offset_limit
4838*22dc650dSSadaf Ebrahimi    \=ovector=11000000000
4839*22dc650dSSadaf Ebrahimi    \=callout_fail=11000000000
4840*22dc650dSSadaf Ebrahimi    \=callout_fail=1:11000000000
4841*22dc650dSSadaf Ebrahimi    \=callout_data=11000000000
4842*22dc650dSSadaf Ebrahimi    \=callout_data=-11000000000
4843*22dc650dSSadaf Ebrahimi    \=offset_limit=1100000000000000000000
4844*22dc650dSSadaf Ebrahimi    \=copy=11000000000
4845*22dc650dSSadaf Ebrahimi
4846*22dc650dSSadaf Ebrahimi/(*MARK:A\x00b)/mark
4847*22dc650dSSadaf Ebrahimi    abc
4848*22dc650dSSadaf Ebrahimi
4849*22dc650dSSadaf Ebrahimi/(*MARK:A\x00b)/mark,alt_verbnames
4850*22dc650dSSadaf Ebrahimi    abc
4851*22dc650dSSadaf Ebrahimi
4852*22dc650dSSadaf Ebrahimi/"(*MARK:A" 00 "b)"/mark,hex
4853*22dc650dSSadaf Ebrahimi    abc
4854*22dc650dSSadaf Ebrahimi
4855*22dc650dSSadaf Ebrahimi/"(*MARK:A" 00 "b)"/mark,hex,alt_verbnames
4856*22dc650dSSadaf Ebrahimi    abc
4857*22dc650dSSadaf Ebrahimi
4858*22dc650dSSadaf Ebrahimi/efg/hex
4859*22dc650dSSadaf Ebrahimi
4860*22dc650dSSadaf Ebrahimi/eff/hex
4861*22dc650dSSadaf Ebrahimi
4862*22dc650dSSadaf Ebrahimi/effg/hex
4863*22dc650dSSadaf Ebrahimi
4864*22dc650dSSadaf Ebrahimi/(?J)(?'a'))(?'a')/
4865*22dc650dSSadaf Ebrahimi
4866*22dc650dSSadaf Ebrahimi/(?<=((?C)0))/
4867*22dc650dSSadaf Ebrahimi    9010
4868*22dc650dSSadaf Ebrahimi\= Expect no match
4869*22dc650dSSadaf Ebrahimi    abc
4870*22dc650dSSadaf Ebrahimi
4871*22dc650dSSadaf Ebrahimi/aaa/
4872*22dc650dSSadaf Ebrahimi\[abc]{10000000000000000000000000000}
4873*22dc650dSSadaf Ebrahimi\[a]{3}
4874*22dc650dSSadaf Ebrahimi
4875*22dc650dSSadaf Ebrahimi/\[AB]{6000000000000000000000}/expand
4876*22dc650dSSadaf Ebrahimi
4877*22dc650dSSadaf Ebrahimi# Hex uses pattern length, not zero-terminated. This tests for overrunning
4878*22dc650dSSadaf Ebrahimi# the given length of a pattern.
4879*22dc650dSSadaf Ebrahimi
4880*22dc650dSSadaf Ebrahimi/'(*U'/hex
4881*22dc650dSSadaf Ebrahimi
4882*22dc650dSSadaf Ebrahimi/'(*'/hex
4883*22dc650dSSadaf Ebrahimi
4884*22dc650dSSadaf Ebrahimi/'('/hex
4885*22dc650dSSadaf Ebrahimi
4886*22dc650dSSadaf Ebrahimi//hex
4887*22dc650dSSadaf Ebrahimi
4888*22dc650dSSadaf Ebrahimi# These tests are here because Perl never allows a back reference in a
4889*22dc650dSSadaf Ebrahimi# lookbehind. PCRE2 supports some limited cases.
4890*22dc650dSSadaf Ebrahimi
4891*22dc650dSSadaf Ebrahimi/([ab])...(?<=\1)z/
4892*22dc650dSSadaf Ebrahimi    a11az
4893*22dc650dSSadaf Ebrahimi    b11bz
4894*22dc650dSSadaf Ebrahimi\= Expect no match
4895*22dc650dSSadaf Ebrahimi    b11az
4896*22dc650dSSadaf Ebrahimi
4897*22dc650dSSadaf Ebrahimi/(?|([ab]))...(?<=\1)z/
4898*22dc650dSSadaf Ebrahimi
4899*22dc650dSSadaf Ebrahimi/([ab])(\1)...(?<=\2)z/
4900*22dc650dSSadaf Ebrahimi    aa11az
4901*22dc650dSSadaf Ebrahimi
4902*22dc650dSSadaf Ebrahimi/(a\2)(b\1)(?<=\2)/
4903*22dc650dSSadaf Ebrahimi
4904*22dc650dSSadaf Ebrahimi/(?<A>[ab])...(?<=\k'A')z/
4905*22dc650dSSadaf Ebrahimi    a11az
4906*22dc650dSSadaf Ebrahimi    b11bz
4907*22dc650dSSadaf Ebrahimi\= Expect no match
4908*22dc650dSSadaf Ebrahimi    b11az
4909*22dc650dSSadaf Ebrahimi
4910*22dc650dSSadaf Ebrahimi/(?<A>[ab])...(?<=\k'A')(?<A>)z/dupnames
4911*22dc650dSSadaf Ebrahimi
4912*22dc650dSSadaf Ebrahimi# Perl does not support \g+n
4913*22dc650dSSadaf Ebrahimi
4914*22dc650dSSadaf Ebrahimi/((\g+1X)?([ab]))+/
4915*22dc650dSSadaf Ebrahimi    aaXbbXa
4916*22dc650dSSadaf Ebrahimi
4917*22dc650dSSadaf Ebrahimi/ab(?C1)c/auto_callout
4918*22dc650dSSadaf Ebrahimi    abc
4919*22dc650dSSadaf Ebrahimi
4920*22dc650dSSadaf Ebrahimi/'ab(?C1)c'/hex,auto_callout
4921*22dc650dSSadaf Ebrahimi    abc
4922*22dc650dSSadaf Ebrahimi
4923*22dc650dSSadaf Ebrahimi# Perl accepts these, but gives a warning. We can't warn, so give an error.
4924*22dc650dSSadaf Ebrahimi
4925*22dc650dSSadaf Ebrahimi/[a-[:digit:]]+/
4926*22dc650dSSadaf Ebrahimi    a-a9-a
4927*22dc650dSSadaf Ebrahimi
4928*22dc650dSSadaf Ebrahimi/[A-[:digit:]]+/
4929*22dc650dSSadaf Ebrahimi    A-A9-A
4930*22dc650dSSadaf Ebrahimi
4931*22dc650dSSadaf Ebrahimi/[a-\d]+/
4932*22dc650dSSadaf Ebrahimi    a-a9-a
4933*22dc650dSSadaf Ebrahimi
4934*22dc650dSSadaf Ebrahimi/(?<RA>abc)(?(R)xyz)/B
4935*22dc650dSSadaf Ebrahimi
4936*22dc650dSSadaf Ebrahimi/(?<R>abc)(?(R)xyz)/B
4937*22dc650dSSadaf Ebrahimi
4938*22dc650dSSadaf Ebrahimi/(?=.*[A-Z])/I
4939*22dc650dSSadaf Ebrahimi
4940*22dc650dSSadaf Ebrahimi/()(?<=(?0))/
4941*22dc650dSSadaf Ebrahimi
4942*22dc650dSSadaf Ebrahimi/(?<!|!(?<!))/
4943*22dc650dSSadaf Ebrahimi
4944*22dc650dSSadaf Ebrahimi/(?<!|!|!||||||(?<!)||(?<!)!|!||(?<!)!|!(?<!)!|!|!|!||||!!|<!)!|!||||!|/
4945*22dc650dSSadaf Ebrahimi
4946*22dc650dSSadaf Ebrahimi/{2,2{2,2/use_length
4947*22dc650dSSadaf Ebrahimi
4948*22dc650dSSadaf Ebrahimi/.>*?\g'0/use_length
4949*22dc650dSSadaf Ebrahimi
4950*22dc650dSSadaf Ebrahimi/.>*?\g'0/
4951*22dc650dSSadaf Ebrahimi
4952*22dc650dSSadaf Ebrahimi/{�̈́�̈́�{'{22{2{{2{'{22{{22{2{'{22{2{{2{{222{{2{'{22{2{22{2{'{22{2{{2{'{22{2{22{2{'{'{22{2{22{2{'{22{2{{2{'{22{2{22{2{'{222{2Ą̈́�̈́�{'{22{2{{2{'{22{{11{2{'{22{2{{2{{'{22{2{{2{'{22{{22{1{'{22{2{{2{{222{{2{'{22{2{22{2{'{/auto_callout
4953*22dc650dSSadaf Ebrahimi
4954*22dc650dSSadaf Ebrahimi//
4955*22dc650dSSadaf Ebrahimi\=get=i00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
4956*22dc650dSSadaf Ebrahimi\=get=i2345678901234567890123456789012,get=i1245678901234567890123456789012
4957*22dc650dSSadaf Ebrahimi
4958*22dc650dSSadaf Ebrahimi"(?(?C))"
4959*22dc650dSSadaf Ebrahimi
4960*22dc650dSSadaf Ebrahimi/(?(?(?(?(?(?))))))/
4961*22dc650dSSadaf Ebrahimi
4962*22dc650dSSadaf Ebrahimi/(?<=(?1))((?s))/anchored
4963*22dc650dSSadaf Ebrahimi
4964*22dc650dSSadaf Ebrahimi/(*:ab)*/
4965*22dc650dSSadaf Ebrahimi
4966*22dc650dSSadaf Ebrahimi%(*:(:(svvvvvvvvvv:]*[   Z!*;[]*[^[]*!^[+.+{{2,7}'      _\\\\\\\\\\\\\)?.:..    *w////\\\Q\\\\\\\\\\\\\\\T\\\\\+/?/////'+\\\EEE?/////'+/*+/[^K]?]//(w)%never_backslash_c,alt_verbnames,auto_callout
4967*22dc650dSSadaf Ebrahimi
4968*22dc650dSSadaf Ebrahimi/./newline=crlf
4969*22dc650dSSadaf Ebrahimi    \=ph
4970*22dc650dSSadaf Ebrahimi
4971*22dc650dSSadaf Ebrahimi/(\x0e00\000000\xc)/replace=\P,substitute_extended
4972*22dc650dSSadaf Ebrahimi    \x0e00\000000\xc
4973*22dc650dSSadaf Ebrahimi
4974*22dc650dSSadaf Ebrahimi//replace=0
4975*22dc650dSSadaf Ebrahimi    \=offset=7
4976*22dc650dSSadaf Ebrahimi
4977*22dc650dSSadaf Ebrahimi/(?<=\G.)/g,replace=+
4978*22dc650dSSadaf Ebrahimi    abc
4979*22dc650dSSadaf Ebrahimi
4980*22dc650dSSadaf Ebrahimi".+\QX\E+"B,no_auto_possess
4981*22dc650dSSadaf Ebrahimi
4982*22dc650dSSadaf Ebrahimi".+\QX\E+"B,auto_callout,no_auto_possess
4983*22dc650dSSadaf Ebrahimi
4984*22dc650dSSadaf Ebrahimi# This one is here because Perl gives an 'unmatched )' error which goes away
4985*22dc650dSSadaf Ebrahimi# if one of the \) sequences is removed - which is weird. PCRE finds it too
4986*22dc650dSSadaf Ebrahimi# complicated to find a minimum matching length.
4987*22dc650dSSadaf Ebrahimi
4988*22dc650dSSadaf Ebrahimi"()X|((((((((()))))))((((())))))\2())((((((\2\2)))\2)(\22((((\2\2)2))\2)))(2\ZZZ)+:)Z^|91ZiZZnter(ZZ |91Z(ZZ ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z+:)Z|91Z(ZZ ZZ(\r2Z( or#(\Z2(Z\Z((Z*(\2(Z\':))\0)i|||||||||||||||loZ\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z)))int \)\0nte!rnal errpr\2\\21r(2\ZZZ)+:)Z!|91Z(ZZ ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z)))int \)\0(2\ZZZ)+:)Z^|91ZiZZnter(ZZ |91Z(ZZ ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z)))int \)\0(2\ZZZ)+:)Z^)))int \)\0(2\ZZZ)+:)Z^|91ZiZZnter(ZZernZal ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z)))int \))\ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)))\2))))((((((\2\2))))))"I
4989*22dc650dSSadaf Ebrahimi
4990*22dc650dSSadaf Ebrahimi# This checks that new code for handling groups that may match an empty string
4991*22dc650dSSadaf Ebrahimi# works on a very large number of alternatives. This pattern used to provoke a
4992*22dc650dSSadaf Ebrahimi# complaint that it was too complicated.
4993*22dc650dSSadaf Ebrahimi
4994*22dc650dSSadaf Ebrahimi/(?:\[A|B|C|D|E|F|G|H|I|J|]{200}Z)/expand
4995*22dc650dSSadaf Ebrahimi
4996*22dc650dSSadaf Ebrahimi# This one used to compile rubbish instead of a compile error, and then
4997*22dc650dSSadaf Ebrahimi# behave unpredictably at match time.
4998*22dc650dSSadaf Ebrahimi
4999*22dc650dSSadaf Ebrahimi/.+(?(?C'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'))?!XXXX.=X/
5000*22dc650dSSadaf Ebrahimi    .+(?(?C'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'))?!XXXX.=X
5001*22dc650dSSadaf Ebrahimi
5002*22dc650dSSadaf Ebrahimi/[:[:alnum:]-[[a:lnum:]+/
5003*22dc650dSSadaf Ebrahimi
5004*22dc650dSSadaf Ebrahimi/((?(?C'')\QX\E(?!((?(?C'')(?!X=X));=)r*X=X));=)/
5005*22dc650dSSadaf Ebrahimi
5006*22dc650dSSadaf Ebrahimi/((?(?C'')\Q\E(?!((?(?C'')(?!X=X));=)r*X=X));=)/
5007*22dc650dSSadaf Ebrahimi
5008*22dc650dSSadaf Ebrahimi/abcd/auto_callout
5009*22dc650dSSadaf Ebrahimi    abcd\=callout_error=255:2
5010*22dc650dSSadaf Ebrahimi
5011*22dc650dSSadaf Ebrahimi/()(\g+65534)/
5012*22dc650dSSadaf Ebrahimi
5013*22dc650dSSadaf Ebrahimi/()(\g+65533)/
5014*22dc650dSSadaf Ebrahimi
5015*22dc650dSSadaf Ebrahimi/�\x00\x00\x00�(\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\x00k\d+\x00‎\x00\x00\x00\x00\x00\2*\x00\x00\1*.){36}int^\x00\x00��\x00�(\1{50779}?)J\w2/I
5016*22dc650dSSadaf Ebrahimi
5017*22dc650dSSadaf Ebrahimi/(a)(b)\2\1\1\1\1/I
5018*22dc650dSSadaf Ebrahimi
5019*22dc650dSSadaf Ebrahimi/(?<a>a)(?<b>b)\g{b}\g{a}\g{a}\g{a}\g{a}(?<a>xx)(?<b>zz)/I,dupnames
5020*22dc650dSSadaf Ebrahimi
5021*22dc650dSSadaf Ebrahimi//
5022*22dc650dSSadaf Ebrahimi    \=ovector=7777777777
5023*22dc650dSSadaf Ebrahimi
5024*22dc650dSSadaf Ebrahimi# This is here because Perl matches, even though a COMMIT is encountered
5025*22dc650dSSadaf Ebrahimi# outside of the recursion.
5026*22dc650dSSadaf Ebrahimi
5027*22dc650dSSadaf Ebrahimi/(?1)(A(*COMMIT)|B)D/
5028*22dc650dSSadaf Ebrahimi    BAXBAD
5029*22dc650dSSadaf Ebrahimi
5030*22dc650dSSadaf Ebrahimi"(?1){2}(a)"B
5031*22dc650dSSadaf Ebrahimi
5032*22dc650dSSadaf Ebrahimi"(?1){2,4}(a)"B
5033*22dc650dSSadaf Ebrahimi
5034*22dc650dSSadaf Ebrahimi# This test differs from Perl for the first subject. Perl ends up with
5035*22dc650dSSadaf Ebrahimi# $1 set to 'B'; PCRE2 has it unset (which I think is right).
5036*22dc650dSSadaf Ebrahimi
5037*22dc650dSSadaf Ebrahimi/^(?:
5038*22dc650dSSadaf Ebrahimi(?:A| (?:B|B(*ACCEPT)) (?<=(.)) D)
5039*22dc650dSSadaf Ebrahimi(Z)
5040*22dc650dSSadaf Ebrahimi)+$/x
5041*22dc650dSSadaf Ebrahimi    AZB
5042*22dc650dSSadaf Ebrahimi    AZBDZ
5043*22dc650dSSadaf Ebrahimi
5044*22dc650dSSadaf Ebrahimi# The first of these, when run by Perl, gives the mark 'aa', which is wrong.
5045*22dc650dSSadaf Ebrahimi
5046*22dc650dSSadaf Ebrahimi'(?>a(*:aa))b|ac' mark
5047*22dc650dSSadaf Ebrahimi    ac
5048*22dc650dSSadaf Ebrahimi
5049*22dc650dSSadaf Ebrahimi'(?:a(*:aa))b|ac' mark
5050*22dc650dSSadaf Ebrahimi    ac
5051*22dc650dSSadaf Ebrahimi
5052*22dc650dSSadaf Ebrahimi/(R?){65}/
5053*22dc650dSSadaf Ebrahimi    (R?){65}
5054*22dc650dSSadaf Ebrahimi
5055*22dc650dSSadaf Ebrahimi/\[(a)]{60}/expand
5056*22dc650dSSadaf Ebrahimi    aaaa
5057*22dc650dSSadaf Ebrahimi
5058*22dc650dSSadaf Ebrahimi/(?<!\1((?U)1((?U))))(*F)/never_backslash_c,alt_bsux,anchored,extended
5059*22dc650dSSadaf Ebrahimi
5060*22dc650dSSadaf Ebrahimi/\g{3/
5061*22dc650dSSadaf Ebrahimi
5062*22dc650dSSadaf Ebrahimi/(a(?C1)(b)(c)d)+/
5063*22dc650dSSadaf Ebrahimi  abcdabcd\=callout_capture
5064*22dc650dSSadaf Ebrahimi
5065*22dc650dSSadaf Ebrahimi# Perl matches this one, but PCRE does not because (*ACCEPT) clears out any
5066*22dc650dSSadaf Ebrahimi# pending backtracks in the recursion.
5067*22dc650dSSadaf Ebrahimi
5068*22dc650dSSadaf Ebrahimi/^ (?(DEFINE) (..(*ACCEPT)|...) ) (?1)$/x
5069*22dc650dSSadaf Ebrahimi\= Expect no match
5070*22dc650dSSadaf Ebrahimi    abc
5071*22dc650dSSadaf Ebrahimi
5072*22dc650dSSadaf Ebrahimi# Perl gives no match for this one
5073*22dc650dSSadaf Ebrahimi
5074*22dc650dSSadaf Ebrahimi/(a(*MARK:m)(*ACCEPT)){0}(?1)/mark
5075*22dc650dSSadaf Ebrahimi    abc
5076*22dc650dSSadaf Ebrahimi
5077*22dc650dSSadaf Ebrahimi/abc/endanchored
5078*22dc650dSSadaf Ebrahimi    xyzabc
5079*22dc650dSSadaf Ebrahimi\= Expect no match
5080*22dc650dSSadaf Ebrahimi    xyzabcdef
5081*22dc650dSSadaf Ebrahimi\= Expect error
5082*22dc650dSSadaf Ebrahimi    xyzabc\=ph
5083*22dc650dSSadaf Ebrahimi
5084*22dc650dSSadaf Ebrahimi/abc/
5085*22dc650dSSadaf Ebrahimi    xyzabc\=endanchored
5086*22dc650dSSadaf Ebrahimi\= Expect no match
5087*22dc650dSSadaf Ebrahimi    xyzabcdef\=endanchored
5088*22dc650dSSadaf Ebrahimi\= Expect error
5089*22dc650dSSadaf Ebrahimi    xyzabc\=ps,endanchored
5090*22dc650dSSadaf Ebrahimi
5091*22dc650dSSadaf Ebrahimi/abc(*ACCEPT)d/endanchored
5092*22dc650dSSadaf Ebrahimi    xyzabc
5093*22dc650dSSadaf Ebrahimi\= Expect no match
5094*22dc650dSSadaf Ebrahimi    xyzabcdef
5095*22dc650dSSadaf Ebrahimi
5096*22dc650dSSadaf Ebrahimi/abc|bcd/endanchored
5097*22dc650dSSadaf Ebrahimi    xyzabcd
5098*22dc650dSSadaf Ebrahimi\= Expect no match
5099*22dc650dSSadaf Ebrahimi    xyzabcdef
5100*22dc650dSSadaf Ebrahimi
5101*22dc650dSSadaf Ebrahimi/a(*ACCEPT)x|aa/endanchored
5102*22dc650dSSadaf Ebrahimi    aaa
5103*22dc650dSSadaf Ebrahimi
5104*22dc650dSSadaf Ebrahimi# Check auto-anchoring when there is a group that is never obeyed at
5105*22dc650dSSadaf Ebrahimi# the start of a branch.
5106*22dc650dSSadaf Ebrahimi
5107*22dc650dSSadaf Ebrahimi/(?(DEFINE)(a))^bc/I
5108*22dc650dSSadaf Ebrahimi
5109*22dc650dSSadaf Ebrahimi/(a){0}.*bc/sI
5110*22dc650dSSadaf Ebrahimi
5111*22dc650dSSadaf Ebrahimi# This should be anchored, as the condition is always false and there is
5112*22dc650dSSadaf Ebrahimi# no alternative branch.
5113*22dc650dSSadaf Ebrahimi
5114*22dc650dSSadaf Ebrahimi/(?(VERSION>=999)yes)^bc/I
5115*22dc650dSSadaf Ebrahimi
5116*22dc650dSSadaf Ebrahimi# This should not be anchored.
5117*22dc650dSSadaf Ebrahimi
5118*22dc650dSSadaf Ebrahimi/(?(VERSION>=999)yes|no)^bc/I
5119*22dc650dSSadaf Ebrahimi
5120*22dc650dSSadaf Ebrahimi/(*LIMIT_HEAP=0)xxx/I
5121*22dc650dSSadaf Ebrahimi
5122*22dc650dSSadaf Ebrahimi/\d{0,3}(*:abc)(?C1)xxx/callout_info
5123*22dc650dSSadaf Ebrahimi
5124*22dc650dSSadaf Ebrahimi# ----------------------------------------------------------------------
5125*22dc650dSSadaf Ebrahimi
5126*22dc650dSSadaf Ebrahimi# These are a whole pile of tests that touch lines of code that are not
5127*22dc650dSSadaf Ebrahimi# used by any other tests (at least when these were created).
5128*22dc650dSSadaf Ebrahimi
5129*22dc650dSSadaf Ebrahimi/^a+?x/i,no_start_optimize,no_auto_possess
5130*22dc650dSSadaf Ebrahimi\= Expect no match
5131*22dc650dSSadaf Ebrahimi    aaa
5132*22dc650dSSadaf Ebrahimi
5133*22dc650dSSadaf Ebrahimi/^[^a]{3,}?x/i,no_start_optimize,no_auto_possess
5134*22dc650dSSadaf Ebrahimi\= Expect no match
5135*22dc650dSSadaf Ebrahimi    bbb
5136*22dc650dSSadaf Ebrahimi    cc
5137*22dc650dSSadaf Ebrahimi
5138*22dc650dSSadaf Ebrahimi/^X\S/no_start_optimize,no_auto_possess
5139*22dc650dSSadaf Ebrahimi\= Expect no match
5140*22dc650dSSadaf Ebrahimi    X
5141*22dc650dSSadaf Ebrahimi
5142*22dc650dSSadaf Ebrahimi/^X\W/no_start_optimize,no_auto_possess
5143*22dc650dSSadaf Ebrahimi\= Expect no match
5144*22dc650dSSadaf Ebrahimi    X
5145*22dc650dSSadaf Ebrahimi
5146*22dc650dSSadaf Ebrahimi/^X\H/no_start_optimize,no_auto_possess
5147*22dc650dSSadaf Ebrahimi\= Expect no match
5148*22dc650dSSadaf Ebrahimi    X
5149*22dc650dSSadaf Ebrahimi
5150*22dc650dSSadaf Ebrahimi/^X\h/no_start_optimize,no_auto_possess
5151*22dc650dSSadaf Ebrahimi\= Expect no match
5152*22dc650dSSadaf Ebrahimi    X
5153*22dc650dSSadaf Ebrahimi
5154*22dc650dSSadaf Ebrahimi/^X\V/no_start_optimize,no_auto_possess
5155*22dc650dSSadaf Ebrahimi\= Expect no match
5156*22dc650dSSadaf Ebrahimi    X
5157*22dc650dSSadaf Ebrahimi
5158*22dc650dSSadaf Ebrahimi/^X\v/no_start_optimize,no_auto_possess
5159*22dc650dSSadaf Ebrahimi\= Expect no match
5160*22dc650dSSadaf Ebrahimi    X
5161*22dc650dSSadaf Ebrahimi
5162*22dc650dSSadaf Ebrahimi/^X\h/no_start_optimize,no_auto_possess
5163*22dc650dSSadaf Ebrahimi\= Expect no match
5164*22dc650dSSadaf Ebrahimi    XY
5165*22dc650dSSadaf Ebrahimi
5166*22dc650dSSadaf Ebrahimi/^X\V/no_start_optimize,no_auto_possess
5167*22dc650dSSadaf Ebrahimi\= Expect no match
5168*22dc650dSSadaf Ebrahimi    X\n
5169*22dc650dSSadaf Ebrahimi
5170*22dc650dSSadaf Ebrahimi/^X\v/no_start_optimize,no_auto_possess
5171*22dc650dSSadaf Ebrahimi\= Expect no match
5172*22dc650dSSadaf Ebrahimi    XX
5173*22dc650dSSadaf Ebrahimi
5174*22dc650dSSadaf Ebrahimi/^X.+?/s,no_start_optimize,no_auto_possess
5175*22dc650dSSadaf Ebrahimi\= Expect no match
5176*22dc650dSSadaf Ebrahimi    X
5177*22dc650dSSadaf Ebrahimi
5178*22dc650dSSadaf Ebrahimi/^X\R+?/no_start_optimize,no_auto_possess
5179*22dc650dSSadaf Ebrahimi\= Expect no match
5180*22dc650dSSadaf Ebrahimi    XX
5181*22dc650dSSadaf Ebrahimi
5182*22dc650dSSadaf Ebrahimi/^X\H+?/no_start_optimize,no_auto_possess
5183*22dc650dSSadaf Ebrahimi\= Expect no match
5184*22dc650dSSadaf Ebrahimi    X
5185*22dc650dSSadaf Ebrahimi
5186*22dc650dSSadaf Ebrahimi/^X\h+?/no_start_optimize,no_auto_possess
5187*22dc650dSSadaf Ebrahimi\= Expect no match
5188*22dc650dSSadaf Ebrahimi    X
5189*22dc650dSSadaf Ebrahimi
5190*22dc650dSSadaf Ebrahimi/^X\V+?/no_start_optimize,no_auto_possess
5191*22dc650dSSadaf Ebrahimi\= Expect no match
5192*22dc650dSSadaf Ebrahimi    X
5193*22dc650dSSadaf Ebrahimi    X\n
5194*22dc650dSSadaf Ebrahimi
5195*22dc650dSSadaf Ebrahimi/^X\D+?/no_start_optimize,no_auto_possess
5196*22dc650dSSadaf Ebrahimi\= Expect no match
5197*22dc650dSSadaf Ebrahimi    X
5198*22dc650dSSadaf Ebrahimi    X9
5199*22dc650dSSadaf Ebrahimi
5200*22dc650dSSadaf Ebrahimi/^X\S+?/no_start_optimize,no_auto_possess
5201*22dc650dSSadaf Ebrahimi\= Expect no match
5202*22dc650dSSadaf Ebrahimi    X
5203*22dc650dSSadaf Ebrahimi    X\n
5204*22dc650dSSadaf Ebrahimi
5205*22dc650dSSadaf Ebrahimi/^X\W+?/no_start_optimize,no_auto_possess
5206*22dc650dSSadaf Ebrahimi\= Expect no match
5207*22dc650dSSadaf Ebrahimi    X
5208*22dc650dSSadaf Ebrahimi    XX
5209*22dc650dSSadaf Ebrahimi
5210*22dc650dSSadaf Ebrahimi/^X.+?Z/no_start_optimize,no_auto_possess
5211*22dc650dSSadaf Ebrahimi\= Expect no match
5212*22dc650dSSadaf Ebrahimi    XY\n
5213*22dc650dSSadaf Ebrahimi
5214*22dc650dSSadaf Ebrahimi/(*CRLF)^X.+?Z/no_start_optimize,no_auto_possess
5215*22dc650dSSadaf Ebrahimi\= Expect no match
5216*22dc650dSSadaf Ebrahimi    XY\r\=ps
5217*22dc650dSSadaf Ebrahimi
5218*22dc650dSSadaf Ebrahimi/^X\R+?Z/no_start_optimize,no_auto_possess
5219*22dc650dSSadaf Ebrahimi\= Expect no match
5220*22dc650dSSadaf Ebrahimi    X\nX
5221*22dc650dSSadaf Ebrahimi    X\n\r\n
5222*22dc650dSSadaf Ebrahimi    X\n\rY
5223*22dc650dSSadaf Ebrahimi    X\n\nY
5224*22dc650dSSadaf Ebrahimi    X\n\x{0c}Y
5225*22dc650dSSadaf Ebrahimi
5226*22dc650dSSadaf Ebrahimi/(*BSR_ANYCRLF)^X\R+?Z/no_start_optimize,no_auto_possess
5227*22dc650dSSadaf Ebrahimi\= Expect no match
5228*22dc650dSSadaf Ebrahimi    X\nX
5229*22dc650dSSadaf Ebrahimi    X\n\r\n
5230*22dc650dSSadaf Ebrahimi    X\n\rY
5231*22dc650dSSadaf Ebrahimi    X\n\nY
5232*22dc650dSSadaf Ebrahimi    X\n\x{0c}Y
5233*22dc650dSSadaf Ebrahimi
5234*22dc650dSSadaf Ebrahimi/^X\H+?Z/no_start_optimize,no_auto_possess
5235*22dc650dSSadaf Ebrahimi\= Expect no match
5236*22dc650dSSadaf Ebrahimi    XY\t
5237*22dc650dSSadaf Ebrahimi    XYY
5238*22dc650dSSadaf Ebrahimi
5239*22dc650dSSadaf Ebrahimi/^X\h+?Z/no_start_optimize,no_auto_possess
5240*22dc650dSSadaf Ebrahimi\= Expect no match
5241*22dc650dSSadaf Ebrahimi    X\t\t
5242*22dc650dSSadaf Ebrahimi    X\tY
5243*22dc650dSSadaf Ebrahimi
5244*22dc650dSSadaf Ebrahimi/^X\V+?Z/no_start_optimize,no_auto_possess
5245*22dc650dSSadaf Ebrahimi\= Expect no match
5246*22dc650dSSadaf Ebrahimi    XY\n
5247*22dc650dSSadaf Ebrahimi    XYY
5248*22dc650dSSadaf Ebrahimi
5249*22dc650dSSadaf Ebrahimi/^X\v+?Z/no_start_optimize,no_auto_possess
5250*22dc650dSSadaf Ebrahimi\= Expect no match
5251*22dc650dSSadaf Ebrahimi    X\n\n
5252*22dc650dSSadaf Ebrahimi    X\nY
5253*22dc650dSSadaf Ebrahimi
5254*22dc650dSSadaf Ebrahimi/^X\D+?Z/no_start_optimize,no_auto_possess
5255*22dc650dSSadaf Ebrahimi\= Expect no match
5256*22dc650dSSadaf Ebrahimi    XY9
5257*22dc650dSSadaf Ebrahimi    XYY
5258*22dc650dSSadaf Ebrahimi
5259*22dc650dSSadaf Ebrahimi/^X\d+?Z/no_start_optimize,no_auto_possess
5260*22dc650dSSadaf Ebrahimi\= Expect no match
5261*22dc650dSSadaf Ebrahimi    X99
5262*22dc650dSSadaf Ebrahimi    X9Y
5263*22dc650dSSadaf Ebrahimi
5264*22dc650dSSadaf Ebrahimi/^X\S+?Z/no_start_optimize,no_auto_possess
5265*22dc650dSSadaf Ebrahimi\= Expect no match
5266*22dc650dSSadaf Ebrahimi    XY\n
5267*22dc650dSSadaf Ebrahimi    XYY
5268*22dc650dSSadaf Ebrahimi
5269*22dc650dSSadaf Ebrahimi/^X\s+?Z/no_start_optimize,no_auto_possess
5270*22dc650dSSadaf Ebrahimi\= Expect no match
5271*22dc650dSSadaf Ebrahimi    X\n\n
5272*22dc650dSSadaf Ebrahimi    X\nY
5273*22dc650dSSadaf Ebrahimi
5274*22dc650dSSadaf Ebrahimi/^X\W+?Z/no_start_optimize,no_auto_possess
5275*22dc650dSSadaf Ebrahimi\= Expect no match
5276*22dc650dSSadaf Ebrahimi    X.A
5277*22dc650dSSadaf Ebrahimi    X++
5278*22dc650dSSadaf Ebrahimi
5279*22dc650dSSadaf Ebrahimi/^X\w+?Z/no_start_optimize,no_auto_possess
5280*22dc650dSSadaf Ebrahimi\= Expect no match
5281*22dc650dSSadaf Ebrahimi    Xa.
5282*22dc650dSSadaf Ebrahimi    Xaa
5283*22dc650dSSadaf Ebrahimi
5284*22dc650dSSadaf Ebrahimi/^X.{1,3}Z/s,no_start_optimize,no_auto_possess
5285*22dc650dSSadaf Ebrahimi\= Expect no match
5286*22dc650dSSadaf Ebrahimi    Xa.bd
5287*22dc650dSSadaf Ebrahimi
5288*22dc650dSSadaf Ebrahimi/^X\h+Z/no_start_optimize,no_auto_possess
5289*22dc650dSSadaf Ebrahimi\= Expect no match
5290*22dc650dSSadaf Ebrahimi    X\t\t
5291*22dc650dSSadaf Ebrahimi    X\tY
5292*22dc650dSSadaf Ebrahimi
5293*22dc650dSSadaf Ebrahimi/^X\V+Z/no_start_optimize,no_auto_possess
5294*22dc650dSSadaf Ebrahimi\= Expect no match
5295*22dc650dSSadaf Ebrahimi    XY\n
5296*22dc650dSSadaf Ebrahimi    XYY
5297*22dc650dSSadaf Ebrahimi
5298*22dc650dSSadaf Ebrahimi/^(X(*THEN)Y|AB){0}(?1)/
5299*22dc650dSSadaf Ebrahimi    ABX
5300*22dc650dSSadaf Ebrahimi\= Expect no match
5301*22dc650dSSadaf Ebrahimi    XAB
5302*22dc650dSSadaf Ebrahimi
5303*22dc650dSSadaf Ebrahimi/^(?!A(?C1)B)C/
5304*22dc650dSSadaf Ebrahimi    ABC\=callout_error=1,no_jit
5305*22dc650dSSadaf Ebrahimi
5306*22dc650dSSadaf Ebrahimi/^(?!A(?C1)B)C/no_start_optimize
5307*22dc650dSSadaf Ebrahimi    ABC\=callout_error=1
5308*22dc650dSSadaf Ebrahimi
5309*22dc650dSSadaf Ebrahimi/^(?(?!A(?C1)B)C)/
5310*22dc650dSSadaf Ebrahimi    ABC\=callout_error=1
5311*22dc650dSSadaf Ebrahimi
5312*22dc650dSSadaf Ebrahimi# ----------------------------------------------------------------------
5313*22dc650dSSadaf Ebrahimi
5314*22dc650dSSadaf Ebrahimi/[a b c]/BxxI
5315*22dc650dSSadaf Ebrahimi
5316*22dc650dSSadaf Ebrahimi/[a b c]/BxxxI
5317*22dc650dSSadaf Ebrahimi
5318*22dc650dSSadaf Ebrahimi/[a b c]/B,extended_more
5319*22dc650dSSadaf Ebrahimi
5320*22dc650dSSadaf Ebrahimi/[ a b c ]/B,extended_more
5321*22dc650dSSadaf Ebrahimi
5322*22dc650dSSadaf Ebrahimi/[a b](?xx: [ 12 ] (?-xx:[ 34 ]) )y z/B
5323*22dc650dSSadaf Ebrahimi
5324*22dc650dSSadaf Ebrahimi# Unsetting /x also unsets /xx
5325*22dc650dSSadaf Ebrahimi
5326*22dc650dSSadaf Ebrahimi/[a b](?xx: [ 12 ] (?-x:[ 34 ]) )y z/B
5327*22dc650dSSadaf Ebrahimi
5328*22dc650dSSadaf Ebrahimi/(a)(?-n:(b))(c)/nB
5329*22dc650dSSadaf Ebrahimi
5330*22dc650dSSadaf Ebrahimi# ----------------------------------------------------------------------
5331*22dc650dSSadaf Ebrahimi# These test the dangerous PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL option.
5332*22dc650dSSadaf Ebrahimi
5333*22dc650dSSadaf Ebrahimi/\j\x{z}\o{82}\L\uabcd\u\U\g{\g/B,\bad_escape_is_literal
5334*22dc650dSSadaf Ebrahimi
5335*22dc650dSSadaf Ebrahimi/\N{\c/IB,bad_escape_is_literal
5336*22dc650dSSadaf Ebrahimi
5337*22dc650dSSadaf Ebrahimi/[\j\x{z}\o\gAb\g]/B,bad_escape_is_literal
5338*22dc650dSSadaf Ebrahimi
5339*22dc650dSSadaf Ebrahimi/[Q-\N]/B,bad_escape_is_literal
5340*22dc650dSSadaf Ebrahimi
5341*22dc650dSSadaf Ebrahimi/[\s-_]/bad_escape_is_literal
5342*22dc650dSSadaf Ebrahimi
5343*22dc650dSSadaf Ebrahimi/[_-\s]/bad_escape_is_literal
5344*22dc650dSSadaf Ebrahimi
5345*22dc650dSSadaf Ebrahimi/[\B\R\X]/B
5346*22dc650dSSadaf Ebrahimi
5347*22dc650dSSadaf Ebrahimi/[\B\R\X]/B,bad_escape_is_literal
5348*22dc650dSSadaf Ebrahimi
5349*22dc650dSSadaf Ebrahimi/[A-\BP-\RV-\X]/B
5350*22dc650dSSadaf Ebrahimi
5351*22dc650dSSadaf Ebrahimi/[A-\BP-\RV-\X]/B,bad_escape_is_literal
5352*22dc650dSSadaf Ebrahimi
5353*22dc650dSSadaf Ebrahimi# ----------------------------------------------------------------------
5354*22dc650dSSadaf Ebrahimi
5355*22dc650dSSadaf Ebrahimi/a\b(c/literal
5356*22dc650dSSadaf Ebrahimi    a\\b(c
5357*22dc650dSSadaf Ebrahimi
5358*22dc650dSSadaf Ebrahimi/a\b(c/literal,caseless
5359*22dc650dSSadaf Ebrahimi    a\\b(c
5360*22dc650dSSadaf Ebrahimi    a\\B(c
5361*22dc650dSSadaf Ebrahimi
5362*22dc650dSSadaf Ebrahimi/a\b(c/literal,firstline
5363*22dc650dSSadaf Ebrahimi    XYYa\\b(c
5364*22dc650dSSadaf Ebrahimi\= Expect no match
5365*22dc650dSSadaf Ebrahimi    X\na\\b(c
5366*22dc650dSSadaf Ebrahimi
5367*22dc650dSSadaf Ebrahimi/a\b?c/literal,use_offset_limit
5368*22dc650dSSadaf Ebrahimi    XXXXa\\b?c\=offset_limit=4
5369*22dc650dSSadaf Ebrahimi\= Expect no match
5370*22dc650dSSadaf Ebrahimi    XXXXa\\b?c\=offset_limit=3
5371*22dc650dSSadaf Ebrahimi
5372*22dc650dSSadaf Ebrahimi/a\b(c/literal,anchored,endanchored
5373*22dc650dSSadaf Ebrahimi    a\\b(c
5374*22dc650dSSadaf Ebrahimi\= Expect no match
5375*22dc650dSSadaf Ebrahimi    Xa\\b(c
5376*22dc650dSSadaf Ebrahimi    a\\b(cX
5377*22dc650dSSadaf Ebrahimi    Xa\\b(cX
5378*22dc650dSSadaf Ebrahimi
5379*22dc650dSSadaf Ebrahimi//literal,extended
5380*22dc650dSSadaf Ebrahimi
5381*22dc650dSSadaf Ebrahimi/a\b(c/literal,auto_callout,no_start_optimize
5382*22dc650dSSadaf Ebrahimi    XXXXa\\b(c
5383*22dc650dSSadaf Ebrahimi
5384*22dc650dSSadaf Ebrahimi/a\b(c/literal,auto_callout
5385*22dc650dSSadaf Ebrahimi    XXXXa\\b(c
5386*22dc650dSSadaf Ebrahimi
5387*22dc650dSSadaf Ebrahimi/(*CR)abc/literal
5388*22dc650dSSadaf Ebrahimi    (*CR)abc
5389*22dc650dSSadaf Ebrahimi
5390*22dc650dSSadaf Ebrahimi/cat|dog/I,match_word
5391*22dc650dSSadaf Ebrahimi    the cat sat
5392*22dc650dSSadaf Ebrahimi\= Expect no match
5393*22dc650dSSadaf Ebrahimi    caterpillar
5394*22dc650dSSadaf Ebrahimi    snowcat
5395*22dc650dSSadaf Ebrahimi    syndicate
5396*22dc650dSSadaf Ebrahimi
5397*22dc650dSSadaf Ebrahimi/(cat)|dog/I,match_line,literal
5398*22dc650dSSadaf Ebrahimi    (cat)|dog
5399*22dc650dSSadaf Ebrahimi\= Expect no match
5400*22dc650dSSadaf Ebrahimi    the cat sat
5401*22dc650dSSadaf Ebrahimi    caterpillar
5402*22dc650dSSadaf Ebrahimi    snowcat
5403*22dc650dSSadaf Ebrahimi    syndicate
5404*22dc650dSSadaf Ebrahimi
5405*22dc650dSSadaf Ebrahimi/a whole line/match_line,multiline
5406*22dc650dSSadaf Ebrahimi    Rhubarb \na whole line\n custard
5407*22dc650dSSadaf Ebrahimi\= Expect no match
5408*22dc650dSSadaf Ebrahimi    Not a whole line
5409*22dc650dSSadaf Ebrahimi
5410*22dc650dSSadaf Ebrahimi# Perl gets this wrong, failing to capture 'b' in group 1.
5411*22dc650dSSadaf Ebrahimi
5412*22dc650dSSadaf Ebrahimi/^(b+|a){1,2}?bc/
5413*22dc650dSSadaf Ebrahimi    bbc
5414*22dc650dSSadaf Ebrahimi
5415*22dc650dSSadaf Ebrahimi# And again here, for the "babc" subject string.
5416*22dc650dSSadaf Ebrahimi
5417*22dc650dSSadaf Ebrahimi/^(b*|ba){1,2}?bc/
5418*22dc650dSSadaf Ebrahimi    babc
5419*22dc650dSSadaf Ebrahimi    bbabc
5420*22dc650dSSadaf Ebrahimi    bababc
5421*22dc650dSSadaf Ebrahimi\= Expect no match
5422*22dc650dSSadaf Ebrahimi    bababbc
5423*22dc650dSSadaf Ebrahimi    babababc
5424*22dc650dSSadaf Ebrahimi
5425*22dc650dSSadaf Ebrahimi/[[:digit:]-a]/
5426*22dc650dSSadaf Ebrahimi
5427*22dc650dSSadaf Ebrahimi/[[:digit:]-[:print:]]/
5428*22dc650dSSadaf Ebrahimi
5429*22dc650dSSadaf Ebrahimi/[\d-a]/
5430*22dc650dSSadaf Ebrahimi
5431*22dc650dSSadaf Ebrahimi/[\H-z]/
5432*22dc650dSSadaf Ebrahimi
5433*22dc650dSSadaf Ebrahimi/[\d-[:print:]]/
5434*22dc650dSSadaf Ebrahimi
5435*22dc650dSSadaf Ebrahimi# Perl gets the second of these wrong, giving no match.
5436*22dc650dSSadaf Ebrahimi
5437*22dc650dSSadaf Ebrahimi"(?<=(a))\1?b"I
5438*22dc650dSSadaf Ebrahimi    ab
5439*22dc650dSSadaf Ebrahimi    aaab
5440*22dc650dSSadaf Ebrahimi
5441*22dc650dSSadaf Ebrahimi"(?=(a))\1?b"I
5442*22dc650dSSadaf Ebrahimi    ab
5443*22dc650dSSadaf Ebrahimi    aaab
5444*22dc650dSSadaf Ebrahimi
5445*22dc650dSSadaf Ebrahimi# JIT does not support callout_extra
5446*22dc650dSSadaf Ebrahimi
5447*22dc650dSSadaf Ebrahimi/(*NO_JIT)(a+)b/auto_callout,no_start_optimize,no_auto_possess
5448*22dc650dSSadaf Ebrahimi\= Expect no match
5449*22dc650dSSadaf Ebrahimi    aac\=callout_extra
5450*22dc650dSSadaf Ebrahimi
5451*22dc650dSSadaf Ebrahimi/(*NO_JIT)a+(?C'XXX')b/no_start_optimize,no_auto_possess
5452*22dc650dSSadaf Ebrahimi\= Expect no match
5453*22dc650dSSadaf Ebrahimi    aac\=callout_extra
5454*22dc650dSSadaf Ebrahimi
5455*22dc650dSSadaf Ebrahimi/\n/firstline
5456*22dc650dSSadaf Ebrahimi    xyz\nabc
5457*22dc650dSSadaf Ebrahimi
5458*22dc650dSSadaf Ebrahimi/\nabc/firstline
5459*22dc650dSSadaf Ebrahimi    xyz\nabc
5460*22dc650dSSadaf Ebrahimi
5461*22dc650dSSadaf Ebrahimi/\x{0a}abc/firstline,newline=crlf
5462*22dc650dSSadaf Ebrahimi\= Expect no match
5463*22dc650dSSadaf Ebrahimi    xyz\r\nabc
5464*22dc650dSSadaf Ebrahimi
5465*22dc650dSSadaf Ebrahimi/[abc]/firstline
5466*22dc650dSSadaf Ebrahimi\= Expect no match
5467*22dc650dSSadaf Ebrahimi    \na
5468*22dc650dSSadaf Ebrahimi
5469*22dc650dSSadaf Ebrahimi# These tests are matched in test 1 as they are Perl compatible. Here we are
5470*22dc650dSSadaf Ebrahimi# looking at what does and does not get auto-possessified.
5471*22dc650dSSadaf Ebrahimi
5472*22dc650dSSadaf Ebrahimi/(?(DEFINE)(?<optional_a>a?))^(?&optional_a)a$/B
5473*22dc650dSSadaf Ebrahimi
5474*22dc650dSSadaf Ebrahimi/(?(DEFINE)(?<optional_a>a?)X)^(?&optional_a)a$/B
5475*22dc650dSSadaf Ebrahimi
5476*22dc650dSSadaf Ebrahimi/^(a?)b(?1)a/B
5477*22dc650dSSadaf Ebrahimi
5478*22dc650dSSadaf Ebrahimi/^(a?)+b(?1)a/B
5479*22dc650dSSadaf Ebrahimi
5480*22dc650dSSadaf Ebrahimi/^(a?)++b(?1)a/B
5481*22dc650dSSadaf Ebrahimi
5482*22dc650dSSadaf Ebrahimi/^(a?)+b/B
5483*22dc650dSSadaf Ebrahimi
5484*22dc650dSSadaf Ebrahimi/(?=a+)a(a+)++b/B
5485*22dc650dSSadaf Ebrahimi
5486*22dc650dSSadaf Ebrahimi/(?<=(?=.){4,5}x)/B
5487*22dc650dSSadaf Ebrahimi
5488*22dc650dSSadaf Ebrahimi# Perl behaves differently with these when optimization is turned off
5489*22dc650dSSadaf Ebrahimi
5490*22dc650dSSadaf Ebrahimi/a(*PRUNE:X)bc|qq/mark,no_start_optimize
5491*22dc650dSSadaf Ebrahimi\= Expect no match
5492*22dc650dSSadaf Ebrahimi    axy
5493*22dc650dSSadaf Ebrahimi
5494*22dc650dSSadaf Ebrahimi/a(*THEN:X)bc|qq/mark,no_start_optimize
5495*22dc650dSSadaf Ebrahimi\= Expect no match
5496*22dc650dSSadaf Ebrahimi    axy
5497*22dc650dSSadaf Ebrahimi
5498*22dc650dSSadaf Ebrahimi/(?^x-i)AB/
5499*22dc650dSSadaf Ebrahimi
5500*22dc650dSSadaf Ebrahimi/(?^-i)AB/
5501*22dc650dSSadaf Ebrahimi
5502*22dc650dSSadaf Ebrahimi/(?x-i-i)/
5503*22dc650dSSadaf Ebrahimi
5504*22dc650dSSadaf Ebrahimi/(?(?=^))b/I
5505*22dc650dSSadaf Ebrahimi    abc
5506*22dc650dSSadaf Ebrahimi
5507*22dc650dSSadaf Ebrahimi/(?(?=^)|)b/I
5508*22dc650dSSadaf Ebrahimi    abc
5509*22dc650dSSadaf Ebrahimi
5510*22dc650dSSadaf Ebrahimi/(?(?=^)|^)b/I
5511*22dc650dSSadaf Ebrahimi    bbc
5512*22dc650dSSadaf Ebrahimi\= Expect no match
5513*22dc650dSSadaf Ebrahimi    abc
5514*22dc650dSSadaf Ebrahimi
5515*22dc650dSSadaf Ebrahimi/(?(1)^|^())/I
5516*22dc650dSSadaf Ebrahimi
5517*22dc650dSSadaf Ebrahimi/(?(1)^())b/I
5518*22dc650dSSadaf Ebrahimi
5519*22dc650dSSadaf Ebrahimi/(?(1)^())+b/I,aftertext
5520*22dc650dSSadaf Ebrahimi    abc
5521*22dc650dSSadaf Ebrahimi
5522*22dc650dSSadaf Ebrahimi/(?(1)^()|^)+b/I,aftertext
5523*22dc650dSSadaf Ebrahimi    bbc
5524*22dc650dSSadaf Ebrahimi\= Expect no match
5525*22dc650dSSadaf Ebrahimi    abc
5526*22dc650dSSadaf Ebrahimi
5527*22dc650dSSadaf Ebrahimi/(?(1)^()|^)*b/I,aftertext
5528*22dc650dSSadaf Ebrahimi    bbc
5529*22dc650dSSadaf Ebrahimi    abc
5530*22dc650dSSadaf Ebrahimi    xbc
5531*22dc650dSSadaf Ebrahimi
5532*22dc650dSSadaf Ebrahimi/(?(1)^())+b/I,aftertext
5533*22dc650dSSadaf Ebrahimi    abc
5534*22dc650dSSadaf Ebrahimi
5535*22dc650dSSadaf Ebrahimi/(?(1)^a()|^a)+b/I,aftertext
5536*22dc650dSSadaf Ebrahimi    abc
5537*22dc650dSSadaf Ebrahimi\= Expect no match
5538*22dc650dSSadaf Ebrahimi    bbc
5539*22dc650dSSadaf Ebrahimi
5540*22dc650dSSadaf Ebrahimi/(?(1)^|^(a))+b/I,aftertext
5541*22dc650dSSadaf Ebrahimi    abc
5542*22dc650dSSadaf Ebrahimi\= Expect no match
5543*22dc650dSSadaf Ebrahimi    bbc
5544*22dc650dSSadaf Ebrahimi
5545*22dc650dSSadaf Ebrahimi/(?(1)^a()|^a)*b/I,aftertext
5546*22dc650dSSadaf Ebrahimi    abc
5547*22dc650dSSadaf Ebrahimi    bbc
5548*22dc650dSSadaf Ebrahimi    xbc
5549*22dc650dSSadaf Ebrahimi
5550*22dc650dSSadaf Ebrahimi/a(b)c|xyz/g,allvector,replace=<$0>
5551*22dc650dSSadaf Ebrahimi    abcdefabcpqr\=ovector=4
5552*22dc650dSSadaf Ebrahimi    abxyz\=ovector=4
5553*22dc650dSSadaf Ebrahimi    abcdefxyz\=ovector=4
5554*22dc650dSSadaf Ebrahimi
5555*22dc650dSSadaf Ebrahimi/a(b)c|xyz/allvector
5556*22dc650dSSadaf Ebrahimi    abcdef\=ovector=4
5557*22dc650dSSadaf Ebrahimi    abxyz\=ovector=4
5558*22dc650dSSadaf Ebrahimi
5559*22dc650dSSadaf Ebrahimi/a(b)c|xyz/g,replace=<$0>,substitute_callout
5560*22dc650dSSadaf Ebrahimi    abcdefabcpqr
5561*22dc650dSSadaf Ebrahimi    abxyzpqrabcxyz
5562*22dc650dSSadaf Ebrahimi    12abc34xyz99abc55\=substitute_stop=2
5563*22dc650dSSadaf Ebrahimi    12abc34xyz99abc55\=substitute_skip=1
5564*22dc650dSSadaf Ebrahimi    12abc34xyz99abc55\=substitute_skip=2
5565*22dc650dSSadaf Ebrahimi
5566*22dc650dSSadaf Ebrahimi/a(b)c|xyz/g,replace=<$0>
5567*22dc650dSSadaf Ebrahimi    abcdefabcpqr
5568*22dc650dSSadaf Ebrahimi    abxyzpqrabcxyz
5569*22dc650dSSadaf Ebrahimi    12abc34xyz\=substitute_stop=2
5570*22dc650dSSadaf Ebrahimi    12abc34xyz\=substitute_skip=1
5571*22dc650dSSadaf Ebrahimi
5572*22dc650dSSadaf Ebrahimi/a(b)c|xyz/replace=<$0>
5573*22dc650dSSadaf Ebrahimi    abcdefabcpqr
5574*22dc650dSSadaf Ebrahimi    12abc34xyz\=substitute_skip=1
5575*22dc650dSSadaf Ebrahimi    12abc34xyz\=substitute_stop=1
5576*22dc650dSSadaf Ebrahimi
5577*22dc650dSSadaf Ebrahimi/abc\rdef/
5578*22dc650dSSadaf Ebrahimi    abc\ndef
5579*22dc650dSSadaf Ebrahimi
5580*22dc650dSSadaf Ebrahimi/abc\rdef\x{0d}xyz/escaped_cr_is_lf
5581*22dc650dSSadaf Ebrahimi    abc\ndef\rxyz
5582*22dc650dSSadaf Ebrahimi\= Expect no match
5583*22dc650dSSadaf Ebrahimi    abc\ndef\nxyz
5584*22dc650dSSadaf Ebrahimi
5585*22dc650dSSadaf Ebrahimi/(?(*ACCEPT)xxx)/
5586*22dc650dSSadaf Ebrahimi
5587*22dc650dSSadaf Ebrahimi/(?(*atomic:xx)xxx)/
5588*22dc650dSSadaf Ebrahimi
5589*22dc650dSSadaf Ebrahimi/(?(*script_run:xxx)zzz)/
5590*22dc650dSSadaf Ebrahimi
5591*22dc650dSSadaf Ebrahimi/foobar/
5592*22dc650dSSadaf Ebrahimi    the foobar thing\=copy_matched_subject
5593*22dc650dSSadaf Ebrahimi    the foobar thing\=copy_matched_subject,zero_terminate
5594*22dc650dSSadaf Ebrahimi
5595*22dc650dSSadaf Ebrahimi/foobar/g
5596*22dc650dSSadaf Ebrahimi    the foobar thing foobar again\=copy_matched_subject
5597*22dc650dSSadaf Ebrahimi
5598*22dc650dSSadaf Ebrahimi/(*:XX)^abc/I
5599*22dc650dSSadaf Ebrahimi
5600*22dc650dSSadaf Ebrahimi/(*COMMIT:XX)^abc/I
5601*22dc650dSSadaf Ebrahimi
5602*22dc650dSSadaf Ebrahimi/(*ACCEPT:XX)^abc/I
5603*22dc650dSSadaf Ebrahimi
5604*22dc650dSSadaf Ebrahimi/abc/replace=xyz
5605*22dc650dSSadaf Ebrahimi    abc\=null_context
5606*22dc650dSSadaf Ebrahimi
5607*22dc650dSSadaf Ebrahimi/abc/replace=xyz,substitute_callout
5608*22dc650dSSadaf Ebrahimi    abc
5609*22dc650dSSadaf Ebrahimi\= Expect error message
5610*22dc650dSSadaf Ebrahimi    abc\=null_context
5611*22dc650dSSadaf Ebrahimi
5612*22dc650dSSadaf Ebrahimi/\[()]{65535}()/expand
5613*22dc650dSSadaf Ebrahimi
5614*22dc650dSSadaf Ebrahimi/\[()]{65535}(?<A>)/expand
5615*22dc650dSSadaf Ebrahimi
5616*22dc650dSSadaf Ebrahimi/a(?:(*ACCEPT))??bc/
5617*22dc650dSSadaf Ebrahimi    abc
5618*22dc650dSSadaf Ebrahimi    axy
5619*22dc650dSSadaf Ebrahimi
5620*22dc650dSSadaf Ebrahimi/a(*ACCEPT)??bc/
5621*22dc650dSSadaf Ebrahimi    abc
5622*22dc650dSSadaf Ebrahimi    axy
5623*22dc650dSSadaf Ebrahimi
5624*22dc650dSSadaf Ebrahimi/a(*ACCEPT:XX)??bc/mark
5625*22dc650dSSadaf Ebrahimi    abc
5626*22dc650dSSadaf Ebrahimi    axy
5627*22dc650dSSadaf Ebrahimi
5628*22dc650dSSadaf Ebrahimi/(*:\)?/
5629*22dc650dSSadaf Ebrahimi
5630*22dc650dSSadaf Ebrahimi/(*:\Q \E){5}/alt_verbnames
5631*22dc650dSSadaf Ebrahimi
5632*22dc650dSSadaf Ebrahimi/(?=abc)/I
5633*22dc650dSSadaf Ebrahimi
5634*22dc650dSSadaf Ebrahimi/(?|(X)|(XY))\1abc/I
5635*22dc650dSSadaf Ebrahimi
5636*22dc650dSSadaf Ebrahimi/(?|(a)|(bcde))(c)\2/I
5637*22dc650dSSadaf Ebrahimi
5638*22dc650dSSadaf Ebrahimi/(?|(a)|(bcde))(c)\1/I
5639*22dc650dSSadaf Ebrahimi
5640*22dc650dSSadaf Ebrahimi/(?|(?'A'a)|(?'A'bcde))(?'B'c)\k'B'(?'A')/I,dupnames
5641*22dc650dSSadaf Ebrahimi
5642*22dc650dSSadaf Ebrahimi/(?|(?'A'a)|(?'A'bcde))(?'B'c)\k'A'(?'A')/I,dupnames
5643*22dc650dSSadaf Ebrahimi
5644*22dc650dSSadaf Ebrahimi/((a|)+)+Z/I
5645*22dc650dSSadaf Ebrahimi
5646*22dc650dSSadaf Ebrahimi/((?=a))[abcd]/I
5647*22dc650dSSadaf Ebrahimi
5648*22dc650dSSadaf Ebrahimi/A(?:(*ACCEPT))?B/info
5649*22dc650dSSadaf Ebrahimi
5650*22dc650dSSadaf Ebrahimi/(A(*ACCEPT)??B)C/
5651*22dc650dSSadaf Ebrahimi    ABC
5652*22dc650dSSadaf Ebrahimi    AXY
5653*22dc650dSSadaf Ebrahimi
5654*22dc650dSSadaf Ebrahimi/(?<=(?<=a)b)c.*/I
5655*22dc650dSSadaf Ebrahimi    abc\=ph
5656*22dc650dSSadaf Ebrahimi\= Expect no match
5657*22dc650dSSadaf Ebrahimi    xbc\=ph
5658*22dc650dSSadaf Ebrahimi
5659*22dc650dSSadaf Ebrahimi/(?<=ab)c.*/I
5660*22dc650dSSadaf Ebrahimi    abc\=ph
5661*22dc650dSSadaf Ebrahimi\= Expect no match
5662*22dc650dSSadaf Ebrahimi    xbc\=ph
5663*22dc650dSSadaf Ebrahimi
5664*22dc650dSSadaf Ebrahimi/(?<=a(?<=a|a)c)/I
5665*22dc650dSSadaf Ebrahimi
5666*22dc650dSSadaf Ebrahimi/(?<=a(?<=a|ba)c)/I
5667*22dc650dSSadaf Ebrahimi
5668*22dc650dSSadaf Ebrahimi/(?<=(?<=a)b)(?<!abcd)/I
5669*22dc650dSSadaf Ebrahimi
5670*22dc650dSSadaf Ebrahimi/(?<=(?<=a)b)(?<!abcd)(?<=(?<=a)bcde)/I
5671*22dc650dSSadaf Ebrahimi
5672*22dc650dSSadaf Ebrahimi# Addition overflow
5673*22dc650dSSadaf Ebrahimi/( {32742} {42})(?<!\1{65481})/
5674*22dc650dSSadaf Ebrahimi
5675*22dc650dSSadaf Ebrahimi# Multiplication overflow
5676*22dc650dSSadaf Ebrahimi/(X{65535})(?<=\1{32770})/
5677*22dc650dSSadaf Ebrahimi
5678*22dc650dSSadaf Ebrahimi# ---- Non-atomic assertion tests ----
5679*22dc650dSSadaf Ebrahimi
5680*22dc650dSSadaf Ebrahimi# Expect error: not allowed as a condition
5681*22dc650dSSadaf Ebrahimi/(?(*napla:xx)bc)/
5682*22dc650dSSadaf Ebrahimi
5683*22dc650dSSadaf Ebrahimi/\A(*pla:.*\b(\w++))(?>.*?\b\1\b){3}/
5684*22dc650dSSadaf Ebrahimi    word1 word3 word1 word2 word3 word2 word2 word1 word3 word4
5685*22dc650dSSadaf Ebrahimi
5686*22dc650dSSadaf Ebrahimi/\A(*napla:.*\b(\w++))(?>.*?\b\1\b){3}/
5687*22dc650dSSadaf Ebrahimi    word1 word3 word1 word2 word3 word2 word2 word1 word3 word4
5688*22dc650dSSadaf Ebrahimi
5689*22dc650dSSadaf Ebrahimi/\A(?*.*\b(\w++))(?>.*?\b\1\b){3}/
5690*22dc650dSSadaf Ebrahimi    word1 word3 word1 word2 word3 word2 word2 word1 word3 word4
5691*22dc650dSSadaf Ebrahimi
5692*22dc650dSSadaf Ebrahimi/(*plb:(.)..|(.)...)(\1|\2)/
5693*22dc650dSSadaf Ebrahimi    abcdb\=offset=4
5694*22dc650dSSadaf Ebrahimi    abcda\=offset=4
5695*22dc650dSSadaf Ebrahimi
5696*22dc650dSSadaf Ebrahimi/(*naplb:(.)..|(.)...)(\1|\2)/
5697*22dc650dSSadaf Ebrahimi    abcdb\=offset=4
5698*22dc650dSSadaf Ebrahimi    abcda\=offset=4
5699*22dc650dSSadaf Ebrahimi
5700*22dc650dSSadaf Ebrahimi/(?<*(.)..|(.)...)(\1|\2)/
5701*22dc650dSSadaf Ebrahimi    abcdb\=offset=4
5702*22dc650dSSadaf Ebrahimi    abcda\=offset=4
5703*22dc650dSSadaf Ebrahimi
5704*22dc650dSSadaf Ebrahimi/(*non_atomic_positive_lookahead:ab)/B
5705*22dc650dSSadaf Ebrahimi
5706*22dc650dSSadaf Ebrahimi/(*non_atomic_positive_lookbehind:ab)/B
5707*22dc650dSSadaf Ebrahimi
5708*22dc650dSSadaf Ebrahimi/(*pla:ab+)/B
5709*22dc650dSSadaf Ebrahimi
5710*22dc650dSSadaf Ebrahimi/(*napla:ab+)/B
5711*22dc650dSSadaf Ebrahimi
5712*22dc650dSSadaf Ebrahimi/(*napla:)+/
5713*22dc650dSSadaf Ebrahimi
5714*22dc650dSSadaf Ebrahimi/(*naplb:)+/
5715*22dc650dSSadaf Ebrahimi
5716*22dc650dSSadaf Ebrahimi/(*napla:^x|^y)/I
5717*22dc650dSSadaf Ebrahimi
5718*22dc650dSSadaf Ebrahimi/(*napla:abc|abd)/I
5719*22dc650dSSadaf Ebrahimi
5720*22dc650dSSadaf Ebrahimi/(*napla:a|(.)(*ACCEPT)zz)\1../
5721*22dc650dSSadaf Ebrahimi    abcd
5722*22dc650dSSadaf Ebrahimi
5723*22dc650dSSadaf Ebrahimi/(*napla:a(*ACCEPT)zz|(.))\1../
5724*22dc650dSSadaf Ebrahimi    abcd
5725*22dc650dSSadaf Ebrahimi
5726*22dc650dSSadaf Ebrahimi/(*napla:a|(*COMMIT)(.))\1\1/
5727*22dc650dSSadaf Ebrahimi    aabc
5728*22dc650dSSadaf Ebrahimi\= Expect no match
5729*22dc650dSSadaf Ebrahimi    abbc
5730*22dc650dSSadaf Ebrahimi
5731*22dc650dSSadaf Ebrahimi/(*napla:a|(.))\1\1/
5732*22dc650dSSadaf Ebrahimi    aabc
5733*22dc650dSSadaf Ebrahimi    abbc
5734*22dc650dSSadaf Ebrahimi
5735*22dc650dSSadaf Ebrahimi/(*naplb:ab?c|PQ).../g
5736*22dc650dSSadaf Ebrahimi    abcdefgacxyzPQR123
5737*22dc650dSSadaf Ebrahimi
5738*22dc650dSSadaf Ebrahimi# ----
5739*22dc650dSSadaf Ebrahimi
5740*22dc650dSSadaf Ebrahimi# Expect error (recursion => not fixed length)
5741*22dc650dSSadaf Ebrahimi/(\2)((?=(?<=\1)))/
5742*22dc650dSSadaf Ebrahimi
5743*22dc650dSSadaf Ebrahimi/c*+(?<=[bc])/
5744*22dc650dSSadaf Ebrahimi    abc\=ph
5745*22dc650dSSadaf Ebrahimi    ab\=ph
5746*22dc650dSSadaf Ebrahimi    abc\=ps
5747*22dc650dSSadaf Ebrahimi    ab\=ps
5748*22dc650dSSadaf Ebrahimi
5749*22dc650dSSadaf Ebrahimi/c++(?<=[bc])/
5750*22dc650dSSadaf Ebrahimi    abc\=ph
5751*22dc650dSSadaf Ebrahimi    ab\=ph
5752*22dc650dSSadaf Ebrahimi
5753*22dc650dSSadaf Ebrahimi/(?<=(?=.(?<=x)))/
5754*22dc650dSSadaf Ebrahimi    abx
5755*22dc650dSSadaf Ebrahimi    ab\=ph
5756*22dc650dSSadaf Ebrahimi    bxyz
5757*22dc650dSSadaf Ebrahimi    xyz
5758*22dc650dSSadaf Ebrahimi
5759*22dc650dSSadaf Ebrahimi/\z/
5760*22dc650dSSadaf Ebrahimi   abc\=ph
5761*22dc650dSSadaf Ebrahimi   abc\=ps
5762*22dc650dSSadaf Ebrahimi
5763*22dc650dSSadaf Ebrahimi/\Z/
5764*22dc650dSSadaf Ebrahimi   abc\=ph
5765*22dc650dSSadaf Ebrahimi   abc\=ps
5766*22dc650dSSadaf Ebrahimi   abc\n\=ph
5767*22dc650dSSadaf Ebrahimi   abc\n\=ps
5768*22dc650dSSadaf Ebrahimi
5769*22dc650dSSadaf Ebrahimi/(?![ab]).*/
5770*22dc650dSSadaf Ebrahimi    ab\=ph
5771*22dc650dSSadaf Ebrahimi
5772*22dc650dSSadaf Ebrahimi/c*+/
5773*22dc650dSSadaf Ebrahimi    ab\=ph,offset=2
5774*22dc650dSSadaf Ebrahimi
5775*22dc650dSSadaf Ebrahimi/\A\s*(a|(?:[^`]{28500}){4})/I
5776*22dc650dSSadaf Ebrahimi    a
5777*22dc650dSSadaf Ebrahimi
5778*22dc650dSSadaf Ebrahimi/\A\s*((?:[^`]{28500}){4})/I
5779*22dc650dSSadaf Ebrahimi
5780*22dc650dSSadaf Ebrahimi/\A\s*((?:[^`]{28500}){4}|a)/I
5781*22dc650dSSadaf Ebrahimi    a
5782*22dc650dSSadaf Ebrahimi
5783*22dc650dSSadaf Ebrahimi/(?<A>a)(?(<A>)b)((?<=b).*)/B
5784*22dc650dSSadaf Ebrahimi
5785*22dc650dSSadaf Ebrahimi/(?(1)b)((?<=b).*)/B
5786*22dc650dSSadaf Ebrahimi
5787*22dc650dSSadaf Ebrahimi/(?(R1)b)((?<=b).*)/B
5788*22dc650dSSadaf Ebrahimi
5789*22dc650dSSadaf Ebrahimi/(?(DEFINE)b)((?<=b).*)/B
5790*22dc650dSSadaf Ebrahimi
5791*22dc650dSSadaf Ebrahimi/(?(VERSION=10.3)b)((?<=b).*)/B
5792*22dc650dSSadaf Ebrahimi
5793*22dc650dSSadaf Ebrahimi/[aA]b[cC]/IB
5794*22dc650dSSadaf Ebrahimi
5795*22dc650dSSadaf Ebrahimi/[cc]abcd/I
5796*22dc650dSSadaf Ebrahimi
5797*22dc650dSSadaf Ebrahimi/[Cc]abcd/I
5798*22dc650dSSadaf Ebrahimi
5799*22dc650dSSadaf Ebrahimi/[c]abcd/I
5800*22dc650dSSadaf Ebrahimi
5801*22dc650dSSadaf Ebrahimi/(?:c|C)abcd/I
5802*22dc650dSSadaf Ebrahimi
5803*22dc650dSSadaf Ebrahimi/(a)?a/I
5804*22dc650dSSadaf Ebrahimi    manm
5805*22dc650dSSadaf Ebrahimi
5806*22dc650dSSadaf Ebrahimi/^(?|(\*)(*napla:\S*_(\2?+.+))|(\w)(?=\S*_(\2?+\1)))+_\2$/
5807*22dc650dSSadaf Ebrahimi    *abc_12345abc
5808*22dc650dSSadaf Ebrahimi
5809*22dc650dSSadaf Ebrahimi/^(?|(\*)(*napla:\S*_(\3?+.+))|(\w)(?=\S*_((\2?+\1))))+_\2$/
5810*22dc650dSSadaf Ebrahimi    *abc_12345abc
5811*22dc650dSSadaf Ebrahimi
5812*22dc650dSSadaf Ebrahimi/^((\1+)(?C)|\d)+133X$/
5813*22dc650dSSadaf Ebrahimi    111133X\=callout_capture
5814*22dc650dSSadaf Ebrahimi
5815*22dc650dSSadaf Ebrahimi/abc/replace=xyz,substitute_replacement_only
5816*22dc650dSSadaf Ebrahimi    123abc456
5817*22dc650dSSadaf Ebrahimi
5818*22dc650dSSadaf Ebrahimi/a(?<ONE>b)c(?<TWO>d)e/g,replace=X$ONE+${TWO}Z,substitute_replacement_only
5819*22dc650dSSadaf Ebrahimi    "abcde-abcde-"
5820*22dc650dSSadaf Ebrahimi
5821*22dc650dSSadaf Ebrahimi/a(b)c|xyz/g,replace=<$0>,substitute_callout,substitute_replacement_only
5822*22dc650dSSadaf Ebrahimi    abcdefabcpqr
5823*22dc650dSSadaf Ebrahimi    abxyzpqrabcxyz
5824*22dc650dSSadaf Ebrahimi    12abc34xyz99abc55\=substitute_stop=2
5825*22dc650dSSadaf Ebrahimi    12abc34xyz99abc55\=substitute_skip=1
5826*22dc650dSSadaf Ebrahimi    12abc34xyz99abc55\=substitute_skip=2
5827*22dc650dSSadaf Ebrahimi
5828*22dc650dSSadaf Ebrahimi/a(..)d/replace=>$1<,substitute_matched
5829*22dc650dSSadaf Ebrahimi    xyzabcdxyzabcdxyz
5830*22dc650dSSadaf Ebrahimi    xyzabcdxyzabcdxyz\=ovector=2
5831*22dc650dSSadaf Ebrahimi\= Expect error
5832*22dc650dSSadaf Ebrahimi    xyzabcdxyzabcdxyz\=ovector=1
5833*22dc650dSSadaf Ebrahimi
5834*22dc650dSSadaf Ebrahimi/a(..)d/g,replace=>$1<,substitute_matched
5835*22dc650dSSadaf Ebrahimi    xyzabcdxyzabcdxyz
5836*22dc650dSSadaf Ebrahimi    xyzabcdxyzabcdxyz\=ovector=2
5837*22dc650dSSadaf Ebrahimi\= Expect error
5838*22dc650dSSadaf Ebrahimi    xyzabcdxyzabcdxyz\=ovector=1
5839*22dc650dSSadaf Ebrahimi    xyzabcdxyzabcdxyz\=ovector=1,substitute_unset_empty
5840*22dc650dSSadaf Ebrahimi
5841*22dc650dSSadaf Ebrahimi/55|a(..)d/g,replace=>$1<,substitute_matched
5842*22dc650dSSadaf Ebrahimi    xyz55abcdxyzabcdxyz\=ovector=2,substitute_unset_empty
5843*22dc650dSSadaf Ebrahimi\= Expect error
5844*22dc650dSSadaf Ebrahimi    xyz55abcdxyzabcdxyz\=ovector=2
5845*22dc650dSSadaf Ebrahimi
5846*22dc650dSSadaf Ebrahimi/55|a(..)d/replace=>$1<,substitute_matched
5847*22dc650dSSadaf Ebrahimi    xyz55abcdxyzabcdxyz\=ovector=2,substitute_unset_empty
5848*22dc650dSSadaf Ebrahimi
5849*22dc650dSSadaf Ebrahimi/55|a(..)d/replace=>$1<
5850*22dc650dSSadaf Ebrahimi    xyz55abcdxyzabcdxyz\=ovector=2,substitute_unset_empty
5851*22dc650dSSadaf Ebrahimi
5852*22dc650dSSadaf Ebrahimi/55|a(..)d/g,replace=>$1<
5853*22dc650dSSadaf Ebrahimi    xyz55abcdxyzabcdxyz\=ovector=2,substitute_unset_empty
5854*22dc650dSSadaf Ebrahimi
5855*22dc650dSSadaf Ebrahimi/abc/replace=,caseless
5856*22dc650dSSadaf Ebrahimi    XabcY
5857*22dc650dSSadaf Ebrahimi    XABCY
5858*22dc650dSSadaf Ebrahimi
5859*22dc650dSSadaf Ebrahimi/abc/replace=[4],caseless
5860*22dc650dSSadaf Ebrahimi    XabcY
5861*22dc650dSSadaf Ebrahimi    XABCY
5862*22dc650dSSadaf Ebrahimi
5863*22dc650dSSadaf Ebrahimi/abc/replace=*,caseless
5864*22dc650dSSadaf Ebrahimi    XabcY
5865*22dc650dSSadaf Ebrahimi    XABCY
5866*22dc650dSSadaf Ebrahimi    XabcY\=replace=
5867*22dc650dSSadaf Ebrahimi
5868*22dc650dSSadaf Ebrahimi# Expect non-fixed-length error
5869*22dc650dSSadaf Ebrahimi
5870*22dc650dSSadaf Ebrahimi"(?<=X(?(DEFINE)(.*))(?1))."
5871*22dc650dSSadaf Ebrahimi
5872*22dc650dSSadaf Ebrahimi/\sxxx\s/tables=1
5873*22dc650dSSadaf Ebrahimi\= Expect no match
5874*22dc650dSSadaf Ebrahimi    AB\x{85}xxx\x{a0}XYZ
5875*22dc650dSSadaf Ebrahimi
5876*22dc650dSSadaf Ebrahimi/\sxxx\s/tables=2
5877*22dc650dSSadaf Ebrahimi    AB\x{85}xxx\x{a0}XYZ
5878*22dc650dSSadaf Ebrahimi
5879*22dc650dSSadaf Ebrahimi/^\w+/tables=2
5880*22dc650dSSadaf Ebrahimi    École
5881*22dc650dSSadaf Ebrahimi
5882*22dc650dSSadaf Ebrahimi/^\w+/tables=3
5883*22dc650dSSadaf Ebrahimi    École
5884*22dc650dSSadaf Ebrahimi
5885*22dc650dSSadaf Ebrahimi#loadtables ./testbtables
5886*22dc650dSSadaf Ebrahimi
5887*22dc650dSSadaf Ebrahimi/^\w+/tables=3
5888*22dc650dSSadaf Ebrahimi    École
5889*22dc650dSSadaf Ebrahimi
5890*22dc650dSSadaf Ebrahimi/"(*MARK:>" 00 "<).."/hex,mark,no_start_optimize
5891*22dc650dSSadaf Ebrahimi    AB
5892*22dc650dSSadaf Ebrahimi    A\=ph
5893*22dc650dSSadaf Ebrahimi\= Expect no match
5894*22dc650dSSadaf Ebrahimi    A
5895*22dc650dSSadaf Ebrahimi
5896*22dc650dSSadaf Ebrahimi/"(*MARK:>" 00 "<).(?C1)."/hex,mark,no_start_optimize
5897*22dc650dSSadaf Ebrahimi    AB
5898*22dc650dSSadaf Ebrahimi
5899*22dc650dSSadaf Ebrahimi/(?(VERSION=0.0/
5900*22dc650dSSadaf Ebrahimi
5901*22dc650dSSadaf Ebrahimi# Perl has made \K in lookarounds an error. PCRE2 now rejects as well, unless
5902*22dc650dSSadaf Ebrahimi# explicitly authorized.
5903*22dc650dSSadaf Ebrahimi
5904*22dc650dSSadaf Ebrahimi/(?=a\Kb)ab/
5905*22dc650dSSadaf Ebrahimi
5906*22dc650dSSadaf Ebrahimi/(?=a\Kb)ab/allow_lookaround_bsk
5907*22dc650dSSadaf Ebrahimi    ab
5908*22dc650dSSadaf Ebrahimi
5909*22dc650dSSadaf Ebrahimi/(?!a\Kb)ac/
5910*22dc650dSSadaf Ebrahimi
5911*22dc650dSSadaf Ebrahimi/(?!a\Kb)ac/allow_lookaround_bsk
5912*22dc650dSSadaf Ebrahimi    ac
5913*22dc650dSSadaf Ebrahimi
5914*22dc650dSSadaf Ebrahimi/^abc(?<=b\Kc)d/
5915*22dc650dSSadaf Ebrahimi
5916*22dc650dSSadaf Ebrahimi/^abc(?<=b\Kc)d/allow_lookaround_bsk
5917*22dc650dSSadaf Ebrahimi    abcd
5918*22dc650dSSadaf Ebrahimi
5919*22dc650dSSadaf Ebrahimi/^abc(?<!b\Kq)d/
5920*22dc650dSSadaf Ebrahimi
5921*22dc650dSSadaf Ebrahimi/^abc(?<!b\Kq)d/,allow_lookaround_bsk
5922*22dc650dSSadaf Ebrahimi    abcd
5923*22dc650dSSadaf Ebrahimi
5924*22dc650dSSadaf Ebrahimi# ---------
5925*22dc650dSSadaf Ebrahimi
5926*22dc650dSSadaf Ebrahimi# Tests for zero-length NULL to be treated as an empty string.
5927*22dc650dSSadaf Ebrahimi
5928*22dc650dSSadaf Ebrahimi//
5929*22dc650dSSadaf Ebrahimi    \=null_subject
5930*22dc650dSSadaf Ebrahimi\= Expect error
5931*22dc650dSSadaf Ebrahimi    abc\=null_subject
5932*22dc650dSSadaf Ebrahimi
5933*22dc650dSSadaf Ebrahimi//replace=[20]
5934*22dc650dSSadaf Ebrahimi    abc\=null_replacement
5935*22dc650dSSadaf Ebrahimi    \=null_subject
5936*22dc650dSSadaf Ebrahimi    \=null_replacement
5937*22dc650dSSadaf Ebrahimi
5938*22dc650dSSadaf Ebrahimi/X*/g,replace=xy
5939*22dc650dSSadaf Ebrahimi\= Expect error
5940*22dc650dSSadaf Ebrahimi    >X<\=null_replacement
5941*22dc650dSSadaf Ebrahimi
5942*22dc650dSSadaf Ebrahimi/X+/replace=[20]
5943*22dc650dSSadaf Ebrahimi    >XX<\=null_replacement
5944*22dc650dSSadaf Ebrahimi
5945*22dc650dSSadaf Ebrahimi# ---------
5946*22dc650dSSadaf Ebrahimi
5947*22dc650dSSadaf Ebrahimi/[Aa]{2}/BI
5948*22dc650dSSadaf Ebrahimi    aabcd
5949*22dc650dSSadaf Ebrahimi
5950*22dc650dSSadaf Ebrahimi/A{2}/iBI
5951*22dc650dSSadaf Ebrahimi    aabcd
5952*22dc650dSSadaf Ebrahimi
5953*22dc650dSSadaf Ebrahimi/[Aa]{2,3}/BI
5954*22dc650dSSadaf Ebrahimi    aabcd
5955*22dc650dSSadaf Ebrahimi
5956*22dc650dSSadaf Ebrahimi--
5957*22dc650dSSadaf Ebrahimi    \[X]{-10}
5958*22dc650dSSadaf Ebrahimi
5959*22dc650dSSadaf Ebrahimi# Check imposition of maximum by match_data_create().
5960*22dc650dSSadaf Ebrahimi
5961*22dc650dSSadaf Ebrahimi/abcd/
5962*22dc650dSSadaf Ebrahimi    abcd\=ovector=65536
5963*22dc650dSSadaf Ebrahimi
5964*22dc650dSSadaf Ebrahimi# Use recurse to test \K and Mark in atomic scope.
5965*22dc650dSSadaf Ebrahimi/(?>this line\s*((?R)|)\K)/
5966*22dc650dSSadaf Ebrahimi    this line this line this line
5967*22dc650dSSadaf Ebrahimi
5968*22dc650dSSadaf Ebrahimi/(?>this line\s*((?R)|)(*MARK:A))/
5969*22dc650dSSadaf Ebrahimi    this line this line this line
5970*22dc650dSSadaf Ebrahimi
5971*22dc650dSSadaf Ebrahimi# Check use of NULL pattern with zero length.
5972*22dc650dSSadaf Ebrahimi
5973*22dc650dSSadaf Ebrahimi//null_pattern,use_length
5974*22dc650dSSadaf Ebrahimi    abc
5975*22dc650dSSadaf Ebrahimi
5976*22dc650dSSadaf Ebrahimi//null_pattern
5977*22dc650dSSadaf Ebrahimi
5978*22dc650dSSadaf Ebrahimi/bad null pattern/null_pattern,use_length
5979*22dc650dSSadaf Ebrahimi
5980*22dc650dSSadaf Ebrahimi/bad null pattern/null_pattern
5981*22dc650dSSadaf Ebrahimi
5982*22dc650dSSadaf Ebrahimi# -------- Variable length lookbehinds --------
5983*22dc650dSSadaf Ebrahimi/12345(?<=\d{1,256})X/
5984*22dc650dSSadaf Ebrahimi
5985*22dc650dSSadaf Ebrahimi/(?<=(\d{1,256}))X/max_varlookbehind=256
5986*22dc650dSSadaf Ebrahimi    12345XYZ
5987*22dc650dSSadaf Ebrahimi
5988*22dc650dSSadaf Ebrahimi/12345(?<=a?bc)X/max_varlookbehind=0
5989*22dc650dSSadaf Ebrahimi
5990*22dc650dSSadaf Ebrahimi/12345(?<=abc)X/max_varlookbehind=0
5991*22dc650dSSadaf Ebrahimi
5992*22dc650dSSadaf Ebrahimi/(?<!( {65054}){9,44965})/
5993*22dc650dSSadaf Ebrahimi
5994*22dc650dSSadaf Ebrahimi/(?(?<!|(|a)))/
5995*22dc650dSSadaf Ebrahimi    aaaa\=get=0
5996*22dc650dSSadaf Ebrahimi
5997*22dc650dSSadaf Ebrahimi/(?(?<!|a?))/
5998*22dc650dSSadaf Ebrahimi    aaaa\=get=0
5999*22dc650dSSadaf Ebrahimi
6000*22dc650dSSadaf Ebrahimi# --------
6001*22dc650dSSadaf Ebrahimi
6002*22dc650dSSadaf Ebrahimi/(?<=(()()()()()()()()()()()()()(()()()()(())()()()()(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(())()()()()(()()()()()()(()()()()()()()()()()()()()()()()()()()()()(())()()()()(()()()()()()()()()()()()()(()()()()()()()()()()()()()(()())))))))))/
6003*22dc650dSSadaf Ebrahimi
6004*22dc650dSSadaf Ebrahimi/(?<!( {65054}){0,44965})/auto_callout
6005*22dc650dSSadaf Ebrahimi
6006*22dc650dSSadaf Ebrahimi/A+{,3}/
6007*22dc650dSSadaf Ebrahimi
6008*22dc650dSSadaf Ebrahimi/(\g{+1}Z|(A))+/
6009*22dc650dSSadaf Ebrahimi    BAAZCD
6010*22dc650dSSadaf Ebrahimi    ZAAAZAZAZAACD
6011*22dc650dSSadaf Ebrahimi
6012*22dc650dSSadaf Ebrahimi# This doesn't work in Perl (though I think it used to)
6013*22dc650dSSadaf Ebrahimi
6014*22dc650dSSadaf Ebrahimi/^(?=.*(?=(([A-Z]).*(?(1)\1)))(?!.+\2)){26}/i
6015*22dc650dSSadaf Ebrahimi    The quick brown fox jumps over the lazy dog.
6016*22dc650dSSadaf Ebrahimi    Jackdaws love my big sphinx of quartz.
6017*22dc650dSSadaf Ebrahimi    Pack my box with five dozen liquor jugs.
6018*22dc650dSSadaf Ebrahimi\= Expect no match
6019*22dc650dSSadaf Ebrahimi    The quick brown fox jumps over the lazy cat.
6020*22dc650dSSadaf Ebrahimi    Hackdaws love my big sphinx of quartz.
6021*22dc650dSSadaf Ebrahimi    Pack my fox with five dozen liquor jugs.
6022*22dc650dSSadaf Ebrahimi
6023*22dc650dSSadaf Ebrahimi# These are different to Perl because of the different capturing in repeating
6024*22dc650dSSadaf Ebrahimi# groups.
6025*22dc650dSSadaf Ebrahimi
6026*22dc650dSSadaf Ebrahimi/((foo)|(bar))*/
6027*22dc650dSSadaf Ebrahimi    foobar
6028*22dc650dSSadaf Ebrahimi
6029*22dc650dSSadaf Ebrahimi/(?:(f)(o)(o)|(b)(a)(r))*/
6030*22dc650dSSadaf Ebrahimi    foobar
6031*22dc650dSSadaf Ebrahimi
6032*22dc650dSSadaf Ebrahimi/((Z)+|A)*/
6033*22dc650dSSadaf Ebrahimi    ZABCDEFG
6034*22dc650dSSadaf Ebrahimi
6035*22dc650dSSadaf Ebrahimi/(?:(?P=same)?(?:(?P<same>a)|(?P<same>b))(?P=same))+/g,dupnames
6036*22dc650dSSadaf Ebrahimi    bbbaaabaabb
6037*22dc650dSSadaf Ebrahimi
6038*22dc650dSSadaf Ebrahimi# --------
6039*22dc650dSSadaf Ebrahimi
6040*22dc650dSSadaf Ebrahimi/
6041*22dc650dSSadaf Ebrahimi/anchored, firstline
6042*22dc650dSSadaf Ebrahimi    \x0a
6043*22dc650dSSadaf Ebrahimi
6044*22dc650dSSadaf Ebrahimi/
6045*22dc650dSSadaf Ebrahimi/anchored,firstline,no_start_optimize
6046*22dc650dSSadaf Ebrahimi    \x0a
6047*22dc650dSSadaf Ebrahimi
6048*22dc650dSSadaf Ebrahimi/
6049*22dc650dSSadaf Ebrahimi/firstline
6050*22dc650dSSadaf Ebrahimi    \x0a
6051*22dc650dSSadaf Ebrahimi    abc\x0adef
6052*22dc650dSSadaf Ebrahimi
6053*22dc650dSSadaf Ebrahimi# This test is currently broken in the interpreter
6054*22dc650dSSadaf Ebrahimi# /|a(?0)/endanchored
6055*22dc650dSSadaf Ebrahimi#    aaaa
6056*22dc650dSSadaf Ebrahimi
6057*22dc650dSSadaf Ebrahimi/A +/extended
6058*22dc650dSSadaf Ebrahimi
6059*22dc650dSSadaf Ebrahimi/(*ACCEPT)+/B,auto_callout
6060*22dc650dSSadaf Ebrahimi
6061*22dc650dSSadaf Ebrahimi/a\z/
6062*22dc650dSSadaf Ebrahimi    a
6063*22dc650dSSadaf Ebrahimi    a\=noteol
6064*22dc650dSSadaf Ebrahimi
6065*22dc650dSSadaf Ebrahimi# This matches a character that only exists once in the subject, sort of like a
6066*22dc650dSSadaf Ebrahimi# hypothetical "(.)(?<!\1.+)(?!.*\1)". That has unlimited variable length
6067*22dc650dSSadaf Ebrahimi# lookbehind, so is invalid. This pattern doesn't work in Perl 5.38.0.
6068*22dc650dSSadaf Ebrahimi
6069*22dc650dSSadaf Ebrahimi/\G(?:(?=(\1.|)(.))){1,13}?(?!.*\2.*\2)\1\K\2/g
6070*22dc650dSSadaf Ebrahimi    aaabcccdeee
6071*22dc650dSSadaf Ebrahimi
6072*22dc650dSSadaf Ebrahimi/|(?0)./endanchored
6073*22dc650dSSadaf Ebrahimi    abcd
6074*22dc650dSSadaf Ebrahimi
6075*22dc650dSSadaf Ebrahimi/|a(?0)/endanchored
6076*22dc650dSSadaf Ebrahimi    aaaa
6077*22dc650dSSadaf Ebrahimi
6078*22dc650dSSadaf Ebrahimi/(?:|(?0).)(?(R)|\z)/
6079*22dc650dSSadaf Ebrahimi    abcd
6080*22dc650dSSadaf Ebrahimi
6081*22dc650dSSadaf Ebrahimi/a?(?=b(*COMMIT)c|)d/I
6082*22dc650dSSadaf Ebrahimi    bd
6083*22dc650dSSadaf Ebrahimi
6084*22dc650dSSadaf Ebrahimi/(?=b(*COMMIT)c|)d/I
6085*22dc650dSSadaf Ebrahimi    bd
6086*22dc650dSSadaf Ebrahimi
6087*22dc650dSSadaf Ebrahimi/a?(?=b(*COMMIT)c|)d/I,no_start_optimize
6088*22dc650dSSadaf Ebrahimi    bd
6089*22dc650dSSadaf Ebrahimi
6090*22dc650dSSadaf Ebrahimi/(?=b(*COMMIT)c|)d/I,no_start_optimize
6091*22dc650dSSadaf Ebrahimi    bd
6092*22dc650dSSadaf Ebrahimi
6093*22dc650dSSadaf Ebrahimi/a?(?=bc|)d/I,auto_callout
6094*22dc650dSSadaf Ebrahimi    bd
6095*22dc650dSSadaf Ebrahimi
6096*22dc650dSSadaf Ebrahimi/a?(?=bc|)\bd/I
6097*22dc650dSSadaf Ebrahimi    bd
6098*22dc650dSSadaf Ebrahimi
6099*22dc650dSSadaf Ebrahimi/(?0)/
6100*22dc650dSSadaf Ebrahimi    abc\=disable_recurseloop_check,match_limit=100
6101*22dc650dSSadaf Ebrahimi
6102*22dc650dSSadaf Ebrahimi/(a(?1)z||(?1)++)$/
6103*22dc650dSSadaf Ebrahimi    abcd\=disable_recurseloop_check
6104*22dc650dSSadaf Ebrahimi
6105*22dc650dSSadaf Ebrahimi/(((?<=123?456456|ABC)))(?<=\2)../
6106*22dc650dSSadaf Ebrahimi    ABCDEFG
6107*22dc650dSSadaf Ebrahimi    12345645678910
6108*22dc650dSSadaf Ebrahimi
6109*22dc650dSSadaf Ebrahimi# This test is crashing Perl 5.38.2.
6110*22dc650dSSadaf Ebrahimi
6111*22dc650dSSadaf Ebrahimi/[^\S\W]{6}/
6112*22dc650dSSadaf Ebrahimi    .abc def..
6113*22dc650dSSadaf Ebrahimi
6114*22dc650dSSadaf Ebrahimi# End of testinput2
6115