xref: /aosp_15_r20/external/pcre/testdata/testoutput6 (revision 22dc650d8ae982c6770746019a6f94af92b0f024)
1*22dc650dSSadaf Ebrahimi# This set of tests check the DFA matching functionality of pcre2_dfa_match(),
2*22dc650dSSadaf Ebrahimi# excluding UTF and Unicode property support. All matches are done using DFA,
3*22dc650dSSadaf Ebrahimi# forced by setting a default subject modifier at the start.
4*22dc650dSSadaf Ebrahimi
5*22dc650dSSadaf Ebrahimi#forbid_utf
6*22dc650dSSadaf Ebrahimi#subject dfa
7*22dc650dSSadaf Ebrahimi#newline_default lf anycrlf any
8*22dc650dSSadaf Ebrahimi
9*22dc650dSSadaf Ebrahimi/abc/
10*22dc650dSSadaf Ebrahimi    abc
11*22dc650dSSadaf Ebrahimi 0: abc
12*22dc650dSSadaf Ebrahimi
13*22dc650dSSadaf Ebrahimi/ab*c/
14*22dc650dSSadaf Ebrahimi    abc
15*22dc650dSSadaf Ebrahimi 0: abc
16*22dc650dSSadaf Ebrahimi    abbbbc
17*22dc650dSSadaf Ebrahimi 0: abbbbc
18*22dc650dSSadaf Ebrahimi    ac
19*22dc650dSSadaf Ebrahimi 0: ac
20*22dc650dSSadaf Ebrahimi
21*22dc650dSSadaf Ebrahimi/ab+c/
22*22dc650dSSadaf Ebrahimi    abc
23*22dc650dSSadaf Ebrahimi 0: abc
24*22dc650dSSadaf Ebrahimi    abbbbbbc
25*22dc650dSSadaf Ebrahimi 0: abbbbbbc
26*22dc650dSSadaf Ebrahimi\= Expect no match
27*22dc650dSSadaf Ebrahimi    ac
28*22dc650dSSadaf EbrahimiNo match
29*22dc650dSSadaf Ebrahimi    ab
30*22dc650dSSadaf EbrahimiNo match
31*22dc650dSSadaf Ebrahimi
32*22dc650dSSadaf Ebrahimi/a*/no_auto_possess
33*22dc650dSSadaf Ebrahimi    a
34*22dc650dSSadaf Ebrahimi 0: a
35*22dc650dSSadaf Ebrahimi 1:
36*22dc650dSSadaf Ebrahimi    aaaaaaaaaaaaaaaaa
37*22dc650dSSadaf EbrahimiMatched, but offsets vector is too small to show all matches
38*22dc650dSSadaf Ebrahimi 0: aaaaaaaaaaaaaaaaa
39*22dc650dSSadaf Ebrahimi 1: aaaaaaaaaaaaaaaa
40*22dc650dSSadaf Ebrahimi 2: aaaaaaaaaaaaaaa
41*22dc650dSSadaf Ebrahimi 3: aaaaaaaaaaaaaa
42*22dc650dSSadaf Ebrahimi 4: aaaaaaaaaaaaa
43*22dc650dSSadaf Ebrahimi 5: aaaaaaaaaaaa
44*22dc650dSSadaf Ebrahimi 6: aaaaaaaaaaa
45*22dc650dSSadaf Ebrahimi 7: aaaaaaaaaa
46*22dc650dSSadaf Ebrahimi 8: aaaaaaaaa
47*22dc650dSSadaf Ebrahimi 9: aaaaaaaa
48*22dc650dSSadaf Ebrahimi10: aaaaaaa
49*22dc650dSSadaf Ebrahimi11: aaaaaa
50*22dc650dSSadaf Ebrahimi12: aaaaa
51*22dc650dSSadaf Ebrahimi13: aaaa
52*22dc650dSSadaf Ebrahimi14: aaa
53*22dc650dSSadaf Ebrahimi    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\=ovector=10
54*22dc650dSSadaf EbrahimiMatched, but offsets vector is too small to show all matches
55*22dc650dSSadaf Ebrahimi 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
56*22dc650dSSadaf Ebrahimi 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
57*22dc650dSSadaf Ebrahimi 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaa
58*22dc650dSSadaf Ebrahimi 3: aaaaaaaaaaaaaaaaaaaaaaaaaaa
59*22dc650dSSadaf Ebrahimi 4: aaaaaaaaaaaaaaaaaaaaaaaaaa
60*22dc650dSSadaf Ebrahimi 5: aaaaaaaaaaaaaaaaaaaaaaaaa
61*22dc650dSSadaf Ebrahimi 6: aaaaaaaaaaaaaaaaaaaaaaaa
62*22dc650dSSadaf Ebrahimi 7: aaaaaaaaaaaaaaaaaaaaaaa
63*22dc650dSSadaf Ebrahimi 8: aaaaaaaaaaaaaaaaaaaaaa
64*22dc650dSSadaf Ebrahimi 9: aaaaaaaaaaaaaaaaaaaaa
65*22dc650dSSadaf Ebrahimi    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\=dfa_shortest
66*22dc650dSSadaf Ebrahimi 0:
67*22dc650dSSadaf Ebrahimi
68*22dc650dSSadaf Ebrahimi/(a|abcd|african)/
69*22dc650dSSadaf Ebrahimi    a
70*22dc650dSSadaf Ebrahimi 0: a
71*22dc650dSSadaf Ebrahimi    abcd
72*22dc650dSSadaf Ebrahimi 0: abcd
73*22dc650dSSadaf Ebrahimi 1: a
74*22dc650dSSadaf Ebrahimi    african
75*22dc650dSSadaf Ebrahimi 0: african
76*22dc650dSSadaf Ebrahimi 1: a
77*22dc650dSSadaf Ebrahimi
78*22dc650dSSadaf Ebrahimi/^abc/
79*22dc650dSSadaf Ebrahimi    abcdef
80*22dc650dSSadaf Ebrahimi 0: abc
81*22dc650dSSadaf Ebrahimi\= Expect no match
82*22dc650dSSadaf Ebrahimi    xyzabc
83*22dc650dSSadaf EbrahimiNo match
84*22dc650dSSadaf Ebrahimi    xyz\nabc
85*22dc650dSSadaf EbrahimiNo match
86*22dc650dSSadaf Ebrahimi
87*22dc650dSSadaf Ebrahimi/^abc/m
88*22dc650dSSadaf Ebrahimi    abcdef
89*22dc650dSSadaf Ebrahimi 0: abc
90*22dc650dSSadaf Ebrahimi    xyz\nabc
91*22dc650dSSadaf Ebrahimi 0: abc
92*22dc650dSSadaf Ebrahimi\= Expect no match
93*22dc650dSSadaf Ebrahimi    xyzabc
94*22dc650dSSadaf EbrahimiNo match
95*22dc650dSSadaf Ebrahimi
96*22dc650dSSadaf Ebrahimi/\Aabc/
97*22dc650dSSadaf Ebrahimi    abcdef
98*22dc650dSSadaf Ebrahimi 0: abc
99*22dc650dSSadaf Ebrahimi\= Expect no match
100*22dc650dSSadaf Ebrahimi    xyzabc
101*22dc650dSSadaf EbrahimiNo match
102*22dc650dSSadaf Ebrahimi    xyz\nabc
103*22dc650dSSadaf EbrahimiNo match
104*22dc650dSSadaf Ebrahimi
105*22dc650dSSadaf Ebrahimi/\Aabc/m
106*22dc650dSSadaf Ebrahimi    abcdef
107*22dc650dSSadaf Ebrahimi 0: abc
108*22dc650dSSadaf Ebrahimi\= Expect no match
109*22dc650dSSadaf Ebrahimi    xyzabc
110*22dc650dSSadaf EbrahimiNo match
111*22dc650dSSadaf Ebrahimi    xyz\nabc
112*22dc650dSSadaf EbrahimiNo match
113*22dc650dSSadaf Ebrahimi
114*22dc650dSSadaf Ebrahimi/\Gabc/
115*22dc650dSSadaf Ebrahimi    abcdef
116*22dc650dSSadaf Ebrahimi 0: abc
117*22dc650dSSadaf Ebrahimi    xyzabc\=offset=3
118*22dc650dSSadaf Ebrahimi 0: abc
119*22dc650dSSadaf Ebrahimi\= Expect no match
120*22dc650dSSadaf Ebrahimi    xyzabc
121*22dc650dSSadaf EbrahimiNo match
122*22dc650dSSadaf Ebrahimi    xyzabc\=offset=2
123*22dc650dSSadaf EbrahimiNo match
124*22dc650dSSadaf Ebrahimi
125*22dc650dSSadaf Ebrahimi/x\dy\Dz/
126*22dc650dSSadaf Ebrahimi    x9yzz
127*22dc650dSSadaf Ebrahimi 0: x9yzz
128*22dc650dSSadaf Ebrahimi    x0y+z
129*22dc650dSSadaf Ebrahimi 0: x0y+z
130*22dc650dSSadaf Ebrahimi\= Expect no match
131*22dc650dSSadaf Ebrahimi    xyz
132*22dc650dSSadaf EbrahimiNo match
133*22dc650dSSadaf Ebrahimi    xxy0z
134*22dc650dSSadaf EbrahimiNo match
135*22dc650dSSadaf Ebrahimi
136*22dc650dSSadaf Ebrahimi/x\sy\Sz/
137*22dc650dSSadaf Ebrahimi    x yzz
138*22dc650dSSadaf Ebrahimi 0: x yzz
139*22dc650dSSadaf Ebrahimi    x y+z
140*22dc650dSSadaf Ebrahimi 0: x y+z
141*22dc650dSSadaf Ebrahimi\= Expect no match
142*22dc650dSSadaf Ebrahimi    xyz
143*22dc650dSSadaf EbrahimiNo match
144*22dc650dSSadaf Ebrahimi    xxyyz
145*22dc650dSSadaf EbrahimiNo match
146*22dc650dSSadaf Ebrahimi
147*22dc650dSSadaf Ebrahimi/x\wy\Wz/
148*22dc650dSSadaf Ebrahimi    xxy+z
149*22dc650dSSadaf Ebrahimi 0: xxy+z
150*22dc650dSSadaf Ebrahimi\= Expect no match
151*22dc650dSSadaf Ebrahimi    xxy0z
152*22dc650dSSadaf EbrahimiNo match
153*22dc650dSSadaf Ebrahimi    x+y+z
154*22dc650dSSadaf EbrahimiNo match
155*22dc650dSSadaf Ebrahimi
156*22dc650dSSadaf Ebrahimi/x.y/
157*22dc650dSSadaf Ebrahimi    x+y
158*22dc650dSSadaf Ebrahimi 0: x+y
159*22dc650dSSadaf Ebrahimi    x-y
160*22dc650dSSadaf Ebrahimi 0: x-y
161*22dc650dSSadaf Ebrahimi\= Expect no match
162*22dc650dSSadaf Ebrahimi    x\ny
163*22dc650dSSadaf EbrahimiNo match
164*22dc650dSSadaf Ebrahimi
165*22dc650dSSadaf Ebrahimi/x.y/s
166*22dc650dSSadaf Ebrahimi    x+y
167*22dc650dSSadaf Ebrahimi 0: x+y
168*22dc650dSSadaf Ebrahimi    x-y
169*22dc650dSSadaf Ebrahimi 0: x-y
170*22dc650dSSadaf Ebrahimi    x\ny
171*22dc650dSSadaf Ebrahimi 0: x\x0ay
172*22dc650dSSadaf Ebrahimi
173*22dc650dSSadaf Ebrahimi/(a.b(?s)c.d|x.y)p.q/
174*22dc650dSSadaf Ebrahimi    a+bc+dp+q
175*22dc650dSSadaf Ebrahimi 0: a+bc+dp+q
176*22dc650dSSadaf Ebrahimi    a+bc\ndp+q
177*22dc650dSSadaf Ebrahimi 0: a+bc\x0adp+q
178*22dc650dSSadaf Ebrahimi    x\nyp+q
179*22dc650dSSadaf Ebrahimi 0: x\x0ayp+q
180*22dc650dSSadaf Ebrahimi\= Expect no match
181*22dc650dSSadaf Ebrahimi    a\nbc\ndp+q
182*22dc650dSSadaf EbrahimiNo match
183*22dc650dSSadaf Ebrahimi    a+bc\ndp\nq
184*22dc650dSSadaf EbrahimiNo match
185*22dc650dSSadaf Ebrahimi    x\nyp\nq
186*22dc650dSSadaf EbrahimiNo match
187*22dc650dSSadaf Ebrahimi
188*22dc650dSSadaf Ebrahimi/a\d\z/
189*22dc650dSSadaf Ebrahimi    ba0
190*22dc650dSSadaf Ebrahimi 0: a0
191*22dc650dSSadaf Ebrahimi\= Expect no match
192*22dc650dSSadaf Ebrahimi    ba0\n
193*22dc650dSSadaf EbrahimiNo match
194*22dc650dSSadaf Ebrahimi    ba0\ncd
195*22dc650dSSadaf EbrahimiNo match
196*22dc650dSSadaf Ebrahimi
197*22dc650dSSadaf Ebrahimi/a\d\z/m
198*22dc650dSSadaf Ebrahimi    ba0
199*22dc650dSSadaf Ebrahimi 0: a0
200*22dc650dSSadaf Ebrahimi\= Expect no match
201*22dc650dSSadaf Ebrahimi    ba0\n
202*22dc650dSSadaf EbrahimiNo match
203*22dc650dSSadaf Ebrahimi    ba0\ncd
204*22dc650dSSadaf EbrahimiNo match
205*22dc650dSSadaf Ebrahimi
206*22dc650dSSadaf Ebrahimi/a\d\Z/
207*22dc650dSSadaf Ebrahimi    ba0
208*22dc650dSSadaf Ebrahimi 0: a0
209*22dc650dSSadaf Ebrahimi    ba0\n
210*22dc650dSSadaf Ebrahimi 0: a0
211*22dc650dSSadaf Ebrahimi\= Expect no match
212*22dc650dSSadaf Ebrahimi    ba0\ncd
213*22dc650dSSadaf EbrahimiNo match
214*22dc650dSSadaf Ebrahimi
215*22dc650dSSadaf Ebrahimi/a\d\Z/m
216*22dc650dSSadaf Ebrahimi    ba0
217*22dc650dSSadaf Ebrahimi 0: a0
218*22dc650dSSadaf Ebrahimi    ba0\n
219*22dc650dSSadaf Ebrahimi 0: a0
220*22dc650dSSadaf Ebrahimi\= Expect no match
221*22dc650dSSadaf Ebrahimi    ba0\ncd
222*22dc650dSSadaf EbrahimiNo match
223*22dc650dSSadaf Ebrahimi
224*22dc650dSSadaf Ebrahimi/a\d$/
225*22dc650dSSadaf Ebrahimi    ba0
226*22dc650dSSadaf Ebrahimi 0: a0
227*22dc650dSSadaf Ebrahimi    ba0\n
228*22dc650dSSadaf Ebrahimi 0: a0
229*22dc650dSSadaf Ebrahimi\= Expect no match
230*22dc650dSSadaf Ebrahimi    ba0\ncd
231*22dc650dSSadaf EbrahimiNo match
232*22dc650dSSadaf Ebrahimi
233*22dc650dSSadaf Ebrahimi/a\d$/m
234*22dc650dSSadaf Ebrahimi    ba0
235*22dc650dSSadaf Ebrahimi 0: a0
236*22dc650dSSadaf Ebrahimi    ba0\n
237*22dc650dSSadaf Ebrahimi 0: a0
238*22dc650dSSadaf Ebrahimi    ba0\ncd
239*22dc650dSSadaf Ebrahimi 0: a0
240*22dc650dSSadaf Ebrahimi
241*22dc650dSSadaf Ebrahimi/abc/i
242*22dc650dSSadaf Ebrahimi    abc
243*22dc650dSSadaf Ebrahimi 0: abc
244*22dc650dSSadaf Ebrahimi    aBc
245*22dc650dSSadaf Ebrahimi 0: aBc
246*22dc650dSSadaf Ebrahimi    ABC
247*22dc650dSSadaf Ebrahimi 0: ABC
248*22dc650dSSadaf Ebrahimi
249*22dc650dSSadaf Ebrahimi/[^a]/
250*22dc650dSSadaf Ebrahimi    abcd
251*22dc650dSSadaf Ebrahimi 0: b
252*22dc650dSSadaf Ebrahimi
253*22dc650dSSadaf Ebrahimi/ab?\w/
254*22dc650dSSadaf Ebrahimi    abz
255*22dc650dSSadaf Ebrahimi 0: abz
256*22dc650dSSadaf Ebrahimi 1: ab
257*22dc650dSSadaf Ebrahimi    abbz
258*22dc650dSSadaf Ebrahimi 0: abb
259*22dc650dSSadaf Ebrahimi 1: ab
260*22dc650dSSadaf Ebrahimi    azz
261*22dc650dSSadaf Ebrahimi 0: az
262*22dc650dSSadaf Ebrahimi
263*22dc650dSSadaf Ebrahimi/x{0,3}yz/
264*22dc650dSSadaf Ebrahimi    ayzq
265*22dc650dSSadaf Ebrahimi 0: yz
266*22dc650dSSadaf Ebrahimi    axyzq
267*22dc650dSSadaf Ebrahimi 0: xyz
268*22dc650dSSadaf Ebrahimi    axxyz
269*22dc650dSSadaf Ebrahimi 0: xxyz
270*22dc650dSSadaf Ebrahimi    axxxyzq
271*22dc650dSSadaf Ebrahimi 0: xxxyz
272*22dc650dSSadaf Ebrahimi    axxxxyzq
273*22dc650dSSadaf Ebrahimi 0: xxxyz
274*22dc650dSSadaf Ebrahimi\= Expect no match
275*22dc650dSSadaf Ebrahimi    ax
276*22dc650dSSadaf EbrahimiNo match
277*22dc650dSSadaf Ebrahimi    axx
278*22dc650dSSadaf EbrahimiNo match
279*22dc650dSSadaf Ebrahimi
280*22dc650dSSadaf Ebrahimi/x{3}yz/
281*22dc650dSSadaf Ebrahimi    axxxyzq
282*22dc650dSSadaf Ebrahimi 0: xxxyz
283*22dc650dSSadaf Ebrahimi    axxxxyzq
284*22dc650dSSadaf Ebrahimi 0: xxxyz
285*22dc650dSSadaf Ebrahimi\= Expect no match
286*22dc650dSSadaf Ebrahimi    ax
287*22dc650dSSadaf EbrahimiNo match
288*22dc650dSSadaf Ebrahimi    axx
289*22dc650dSSadaf EbrahimiNo match
290*22dc650dSSadaf Ebrahimi    ayzq
291*22dc650dSSadaf EbrahimiNo match
292*22dc650dSSadaf Ebrahimi    axyzq
293*22dc650dSSadaf EbrahimiNo match
294*22dc650dSSadaf Ebrahimi    axxyz
295*22dc650dSSadaf EbrahimiNo match
296*22dc650dSSadaf Ebrahimi
297*22dc650dSSadaf Ebrahimi/x{2,3}yz/
298*22dc650dSSadaf Ebrahimi    axxyz
299*22dc650dSSadaf Ebrahimi 0: xxyz
300*22dc650dSSadaf Ebrahimi    axxxyzq
301*22dc650dSSadaf Ebrahimi 0: xxxyz
302*22dc650dSSadaf Ebrahimi    axxxxyzq
303*22dc650dSSadaf Ebrahimi 0: xxxyz
304*22dc650dSSadaf Ebrahimi\= Expect no match
305*22dc650dSSadaf Ebrahimi    ax
306*22dc650dSSadaf EbrahimiNo match
307*22dc650dSSadaf Ebrahimi    axx
308*22dc650dSSadaf EbrahimiNo match
309*22dc650dSSadaf Ebrahimi    ayzq
310*22dc650dSSadaf EbrahimiNo match
311*22dc650dSSadaf Ebrahimi    axyzq
312*22dc650dSSadaf EbrahimiNo match
313*22dc650dSSadaf Ebrahimi
314*22dc650dSSadaf Ebrahimi/[^a]+/no_auto_possess
315*22dc650dSSadaf Ebrahimi    bac
316*22dc650dSSadaf Ebrahimi 0: b
317*22dc650dSSadaf Ebrahimi    bcdefax
318*22dc650dSSadaf Ebrahimi 0: bcdef
319*22dc650dSSadaf Ebrahimi 1: bcde
320*22dc650dSSadaf Ebrahimi 2: bcd
321*22dc650dSSadaf Ebrahimi 3: bc
322*22dc650dSSadaf Ebrahimi 4: b
323*22dc650dSSadaf Ebrahimi\= Expect no match
324*22dc650dSSadaf Ebrahimi    aaaaa
325*22dc650dSSadaf EbrahimiNo match
326*22dc650dSSadaf Ebrahimi
327*22dc650dSSadaf Ebrahimi/[^a]*/no_auto_possess
328*22dc650dSSadaf Ebrahimi    bac
329*22dc650dSSadaf Ebrahimi 0: b
330*22dc650dSSadaf Ebrahimi 1:
331*22dc650dSSadaf Ebrahimi    bcdefax
332*22dc650dSSadaf Ebrahimi 0: bcdef
333*22dc650dSSadaf Ebrahimi 1: bcde
334*22dc650dSSadaf Ebrahimi 2: bcd
335*22dc650dSSadaf Ebrahimi 3: bc
336*22dc650dSSadaf Ebrahimi 4: b
337*22dc650dSSadaf Ebrahimi 5:
338*22dc650dSSadaf Ebrahimi    aaaaa
339*22dc650dSSadaf Ebrahimi 0:
340*22dc650dSSadaf Ebrahimi
341*22dc650dSSadaf Ebrahimi/[^a]{3,5}/no_auto_possess
342*22dc650dSSadaf Ebrahimi    xyz
343*22dc650dSSadaf Ebrahimi 0: xyz
344*22dc650dSSadaf Ebrahimi    awxyza
345*22dc650dSSadaf Ebrahimi 0: wxyz
346*22dc650dSSadaf Ebrahimi 1: wxy
347*22dc650dSSadaf Ebrahimi    abcdefa
348*22dc650dSSadaf Ebrahimi 0: bcdef
349*22dc650dSSadaf Ebrahimi 1: bcde
350*22dc650dSSadaf Ebrahimi 2: bcd
351*22dc650dSSadaf Ebrahimi    abcdefghijk
352*22dc650dSSadaf Ebrahimi 0: bcdef
353*22dc650dSSadaf Ebrahimi 1: bcde
354*22dc650dSSadaf Ebrahimi 2: bcd
355*22dc650dSSadaf Ebrahimi\= Expect no match
356*22dc650dSSadaf Ebrahimi    axya
357*22dc650dSSadaf EbrahimiNo match
358*22dc650dSSadaf Ebrahimi    axa
359*22dc650dSSadaf EbrahimiNo match
360*22dc650dSSadaf Ebrahimi    aaaaa
361*22dc650dSSadaf EbrahimiNo match
362*22dc650dSSadaf Ebrahimi
363*22dc650dSSadaf Ebrahimi/\d*/
364*22dc650dSSadaf Ebrahimi    1234b567
365*22dc650dSSadaf Ebrahimi 0: 1234
366*22dc650dSSadaf Ebrahimi    xyz
367*22dc650dSSadaf Ebrahimi 0:
368*22dc650dSSadaf Ebrahimi
369*22dc650dSSadaf Ebrahimi/\D*/
370*22dc650dSSadaf Ebrahimi    a1234b567
371*22dc650dSSadaf Ebrahimi 0: a
372*22dc650dSSadaf Ebrahimi    xyz
373*22dc650dSSadaf Ebrahimi 0: xyz
374*22dc650dSSadaf Ebrahimi
375*22dc650dSSadaf Ebrahimi/\d+/
376*22dc650dSSadaf Ebrahimi    ab1234c56
377*22dc650dSSadaf Ebrahimi 0: 1234
378*22dc650dSSadaf Ebrahimi\= Expect no match
379*22dc650dSSadaf Ebrahimi    xyz
380*22dc650dSSadaf EbrahimiNo match
381*22dc650dSSadaf Ebrahimi
382*22dc650dSSadaf Ebrahimi/\D+/
383*22dc650dSSadaf Ebrahimi    ab123c56
384*22dc650dSSadaf Ebrahimi 0: ab
385*22dc650dSSadaf Ebrahimi\= Expect no match
386*22dc650dSSadaf Ebrahimi    789
387*22dc650dSSadaf EbrahimiNo match
388*22dc650dSSadaf Ebrahimi
389*22dc650dSSadaf Ebrahimi/\d?A/
390*22dc650dSSadaf Ebrahimi    045ABC
391*22dc650dSSadaf Ebrahimi 0: 5A
392*22dc650dSSadaf Ebrahimi    ABC
393*22dc650dSSadaf Ebrahimi 0: A
394*22dc650dSSadaf Ebrahimi\= Expect no match
395*22dc650dSSadaf Ebrahimi    XYZ
396*22dc650dSSadaf EbrahimiNo match
397*22dc650dSSadaf Ebrahimi
398*22dc650dSSadaf Ebrahimi/\D?A/
399*22dc650dSSadaf Ebrahimi    ABC
400*22dc650dSSadaf Ebrahimi 0: A
401*22dc650dSSadaf Ebrahimi    BAC
402*22dc650dSSadaf Ebrahimi 0: BA
403*22dc650dSSadaf Ebrahimi    9ABC
404*22dc650dSSadaf Ebrahimi 0: A
405*22dc650dSSadaf Ebrahimi
406*22dc650dSSadaf Ebrahimi/a+/
407*22dc650dSSadaf Ebrahimi    aaaa
408*22dc650dSSadaf Ebrahimi 0: aaaa
409*22dc650dSSadaf Ebrahimi
410*22dc650dSSadaf Ebrahimi/^.*xyz/
411*22dc650dSSadaf Ebrahimi    xyz
412*22dc650dSSadaf Ebrahimi 0: xyz
413*22dc650dSSadaf Ebrahimi    ggggggggxyz
414*22dc650dSSadaf Ebrahimi 0: ggggggggxyz
415*22dc650dSSadaf Ebrahimi
416*22dc650dSSadaf Ebrahimi/^.+xyz/
417*22dc650dSSadaf Ebrahimi    abcdxyz
418*22dc650dSSadaf Ebrahimi 0: abcdxyz
419*22dc650dSSadaf Ebrahimi    axyz
420*22dc650dSSadaf Ebrahimi 0: axyz
421*22dc650dSSadaf Ebrahimi\= Expect no match
422*22dc650dSSadaf Ebrahimi    xyz
423*22dc650dSSadaf EbrahimiNo match
424*22dc650dSSadaf Ebrahimi
425*22dc650dSSadaf Ebrahimi/^.?xyz/
426*22dc650dSSadaf Ebrahimi    xyz
427*22dc650dSSadaf Ebrahimi 0: xyz
428*22dc650dSSadaf Ebrahimi    cxyz
429*22dc650dSSadaf Ebrahimi 0: cxyz
430*22dc650dSSadaf Ebrahimi
431*22dc650dSSadaf Ebrahimi/^\d{2,3}X/
432*22dc650dSSadaf Ebrahimi    12X
433*22dc650dSSadaf Ebrahimi 0: 12X
434*22dc650dSSadaf Ebrahimi    123X
435*22dc650dSSadaf Ebrahimi 0: 123X
436*22dc650dSSadaf Ebrahimi\= Expect no match
437*22dc650dSSadaf Ebrahimi    X
438*22dc650dSSadaf EbrahimiNo match
439*22dc650dSSadaf Ebrahimi    1X
440*22dc650dSSadaf EbrahimiNo match
441*22dc650dSSadaf Ebrahimi    1234X
442*22dc650dSSadaf EbrahimiNo match
443*22dc650dSSadaf Ebrahimi
444*22dc650dSSadaf Ebrahimi/^[abcd]\d/
445*22dc650dSSadaf Ebrahimi    a45
446*22dc650dSSadaf Ebrahimi 0: a4
447*22dc650dSSadaf Ebrahimi    b93
448*22dc650dSSadaf Ebrahimi 0: b9
449*22dc650dSSadaf Ebrahimi    c99z
450*22dc650dSSadaf Ebrahimi 0: c9
451*22dc650dSSadaf Ebrahimi    d04
452*22dc650dSSadaf Ebrahimi 0: d0
453*22dc650dSSadaf Ebrahimi\= Expect no match
454*22dc650dSSadaf Ebrahimi    e45
455*22dc650dSSadaf EbrahimiNo match
456*22dc650dSSadaf Ebrahimi    abcd
457*22dc650dSSadaf EbrahimiNo match
458*22dc650dSSadaf Ebrahimi    abcd1234
459*22dc650dSSadaf EbrahimiNo match
460*22dc650dSSadaf Ebrahimi    1234
461*22dc650dSSadaf EbrahimiNo match
462*22dc650dSSadaf Ebrahimi
463*22dc650dSSadaf Ebrahimi/^[abcd]*\d/
464*22dc650dSSadaf Ebrahimi    a45
465*22dc650dSSadaf Ebrahimi 0: a4
466*22dc650dSSadaf Ebrahimi    b93
467*22dc650dSSadaf Ebrahimi 0: b9
468*22dc650dSSadaf Ebrahimi    c99z
469*22dc650dSSadaf Ebrahimi 0: c9
470*22dc650dSSadaf Ebrahimi    d04
471*22dc650dSSadaf Ebrahimi 0: d0
472*22dc650dSSadaf Ebrahimi    abcd1234
473*22dc650dSSadaf Ebrahimi 0: abcd1
474*22dc650dSSadaf Ebrahimi    1234
475*22dc650dSSadaf Ebrahimi 0: 1
476*22dc650dSSadaf Ebrahimi\= Expect no match
477*22dc650dSSadaf Ebrahimi    e45
478*22dc650dSSadaf EbrahimiNo match
479*22dc650dSSadaf Ebrahimi    abcd
480*22dc650dSSadaf EbrahimiNo match
481*22dc650dSSadaf Ebrahimi
482*22dc650dSSadaf Ebrahimi/^[abcd]+\d/
483*22dc650dSSadaf Ebrahimi    a45
484*22dc650dSSadaf Ebrahimi 0: a4
485*22dc650dSSadaf Ebrahimi    b93
486*22dc650dSSadaf Ebrahimi 0: b9
487*22dc650dSSadaf Ebrahimi    c99z
488*22dc650dSSadaf Ebrahimi 0: c9
489*22dc650dSSadaf Ebrahimi    d04
490*22dc650dSSadaf Ebrahimi 0: d0
491*22dc650dSSadaf Ebrahimi    abcd1234
492*22dc650dSSadaf Ebrahimi 0: abcd1
493*22dc650dSSadaf Ebrahimi\= Expect no match
494*22dc650dSSadaf Ebrahimi    1234
495*22dc650dSSadaf EbrahimiNo match
496*22dc650dSSadaf Ebrahimi    e45
497*22dc650dSSadaf EbrahimiNo match
498*22dc650dSSadaf Ebrahimi    abcd
499*22dc650dSSadaf EbrahimiNo match
500*22dc650dSSadaf Ebrahimi
501*22dc650dSSadaf Ebrahimi/^a+X/
502*22dc650dSSadaf Ebrahimi    aX
503*22dc650dSSadaf Ebrahimi 0: aX
504*22dc650dSSadaf Ebrahimi    aaX
505*22dc650dSSadaf Ebrahimi 0: aaX
506*22dc650dSSadaf Ebrahimi
507*22dc650dSSadaf Ebrahimi/^[abcd]?\d/
508*22dc650dSSadaf Ebrahimi    a45
509*22dc650dSSadaf Ebrahimi 0: a4
510*22dc650dSSadaf Ebrahimi    b93
511*22dc650dSSadaf Ebrahimi 0: b9
512*22dc650dSSadaf Ebrahimi    c99z
513*22dc650dSSadaf Ebrahimi 0: c9
514*22dc650dSSadaf Ebrahimi    d04
515*22dc650dSSadaf Ebrahimi 0: d0
516*22dc650dSSadaf Ebrahimi    1234
517*22dc650dSSadaf Ebrahimi 0: 1
518*22dc650dSSadaf Ebrahimi\= Expect no match
519*22dc650dSSadaf Ebrahimi    abcd1234
520*22dc650dSSadaf EbrahimiNo match
521*22dc650dSSadaf Ebrahimi    e45
522*22dc650dSSadaf EbrahimiNo match
523*22dc650dSSadaf Ebrahimi
524*22dc650dSSadaf Ebrahimi/^[abcd]{2,3}\d/
525*22dc650dSSadaf Ebrahimi    ab45
526*22dc650dSSadaf Ebrahimi 0: ab4
527*22dc650dSSadaf Ebrahimi    bcd93
528*22dc650dSSadaf Ebrahimi 0: bcd9
529*22dc650dSSadaf Ebrahimi\= Expect no match
530*22dc650dSSadaf Ebrahimi    1234
531*22dc650dSSadaf EbrahimiNo match
532*22dc650dSSadaf Ebrahimi    a36
533*22dc650dSSadaf EbrahimiNo match
534*22dc650dSSadaf Ebrahimi    abcd1234
535*22dc650dSSadaf EbrahimiNo match
536*22dc650dSSadaf Ebrahimi    ee45
537*22dc650dSSadaf EbrahimiNo match
538*22dc650dSSadaf Ebrahimi
539*22dc650dSSadaf Ebrahimi/^(abc)*\d/
540*22dc650dSSadaf Ebrahimi    abc45
541*22dc650dSSadaf Ebrahimi 0: abc4
542*22dc650dSSadaf Ebrahimi    abcabcabc45
543*22dc650dSSadaf Ebrahimi 0: abcabcabc4
544*22dc650dSSadaf Ebrahimi    42xyz
545*22dc650dSSadaf Ebrahimi 0: 4
546*22dc650dSSadaf Ebrahimi
547*22dc650dSSadaf Ebrahimi/^(abc)+\d/
548*22dc650dSSadaf Ebrahimi    abc45
549*22dc650dSSadaf Ebrahimi 0: abc4
550*22dc650dSSadaf Ebrahimi    abcabcabc45
551*22dc650dSSadaf Ebrahimi 0: abcabcabc4
552*22dc650dSSadaf Ebrahimi\= Expect no match
553*22dc650dSSadaf Ebrahimi    42xyz
554*22dc650dSSadaf EbrahimiNo match
555*22dc650dSSadaf Ebrahimi
556*22dc650dSSadaf Ebrahimi/^(abc)?\d/
557*22dc650dSSadaf Ebrahimi    abc45
558*22dc650dSSadaf Ebrahimi 0: abc4
559*22dc650dSSadaf Ebrahimi    42xyz
560*22dc650dSSadaf Ebrahimi 0: 4
561*22dc650dSSadaf Ebrahimi\= Expect no match
562*22dc650dSSadaf Ebrahimi    abcabcabc45
563*22dc650dSSadaf EbrahimiNo match
564*22dc650dSSadaf Ebrahimi
565*22dc650dSSadaf Ebrahimi/^(abc){2,3}\d/
566*22dc650dSSadaf Ebrahimi    abcabc45
567*22dc650dSSadaf Ebrahimi 0: abcabc4
568*22dc650dSSadaf Ebrahimi    abcabcabc45
569*22dc650dSSadaf Ebrahimi 0: abcabcabc4
570*22dc650dSSadaf Ebrahimi\= Expect no match
571*22dc650dSSadaf Ebrahimi    abcabcabcabc45
572*22dc650dSSadaf EbrahimiNo match
573*22dc650dSSadaf Ebrahimi    abc45
574*22dc650dSSadaf EbrahimiNo match
575*22dc650dSSadaf Ebrahimi    42xyz
576*22dc650dSSadaf EbrahimiNo match
577*22dc650dSSadaf Ebrahimi
578*22dc650dSSadaf Ebrahimi/1(abc|xyz)2(?1)3/
579*22dc650dSSadaf Ebrahimi    1abc2abc3456
580*22dc650dSSadaf Ebrahimi 0: 1abc2abc3
581*22dc650dSSadaf Ebrahimi    1abc2xyz3456
582*22dc650dSSadaf Ebrahimi 0: 1abc2xyz3
583*22dc650dSSadaf Ebrahimi
584*22dc650dSSadaf Ebrahimi/^(a*\w|ab)=(a*\w|ab)/
585*22dc650dSSadaf Ebrahimi    ab=ab
586*22dc650dSSadaf Ebrahimi 0: ab=ab
587*22dc650dSSadaf Ebrahimi 1: ab=a
588*22dc650dSSadaf Ebrahimi
589*22dc650dSSadaf Ebrahimi/^(a*\w|ab)=(?1)/
590*22dc650dSSadaf Ebrahimi    ab=ab
591*22dc650dSSadaf Ebrahimi 0: ab=ab
592*22dc650dSSadaf Ebrahimi 1: ab=a
593*22dc650dSSadaf Ebrahimi
594*22dc650dSSadaf Ebrahimi/^([^()]|\((?1)*\))*$/
595*22dc650dSSadaf Ebrahimi    abc
596*22dc650dSSadaf Ebrahimi 0: abc
597*22dc650dSSadaf Ebrahimi    a(b)c
598*22dc650dSSadaf Ebrahimi 0: a(b)c
599*22dc650dSSadaf Ebrahimi    a(b(c))d
600*22dc650dSSadaf Ebrahimi 0: a(b(c))d
601*22dc650dSSadaf Ebrahimi\= Expect no match)
602*22dc650dSSadaf Ebrahimi    a(b(c)d
603*22dc650dSSadaf EbrahimiNo match
604*22dc650dSSadaf Ebrahimi
605*22dc650dSSadaf Ebrahimi/^>abc>([^()]|\((?1)*\))*<xyz<$/
606*22dc650dSSadaf Ebrahimi    >abc>123<xyz<
607*22dc650dSSadaf Ebrahimi 0: >abc>123<xyz<
608*22dc650dSSadaf Ebrahimi    >abc>1(2)3<xyz<
609*22dc650dSSadaf Ebrahimi 0: >abc>1(2)3<xyz<
610*22dc650dSSadaf Ebrahimi    >abc>(1(2)3)<xyz<
611*22dc650dSSadaf Ebrahimi 0: >abc>(1(2)3)<xyz<
612*22dc650dSSadaf Ebrahimi
613*22dc650dSSadaf Ebrahimi/^(?>a*)\d/
614*22dc650dSSadaf Ebrahimi    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876
615*22dc650dSSadaf Ebrahimi 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9
616*22dc650dSSadaf Ebrahimi\= Expect no match
617*22dc650dSSadaf Ebrahimi    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
618*22dc650dSSadaf EbrahimiNo match
619*22dc650dSSadaf Ebrahimi
620*22dc650dSSadaf Ebrahimi/< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x
621*22dc650dSSadaf Ebrahimi    <>
622*22dc650dSSadaf Ebrahimi 0: <>
623*22dc650dSSadaf Ebrahimi    <abcd>
624*22dc650dSSadaf Ebrahimi 0: <abcd>
625*22dc650dSSadaf Ebrahimi    <abc <123> hij>
626*22dc650dSSadaf Ebrahimi 0: <abc <123> hij>
627*22dc650dSSadaf Ebrahimi    <abc <def> hij>
628*22dc650dSSadaf Ebrahimi 0: <def>
629*22dc650dSSadaf Ebrahimi    <abc<>def>
630*22dc650dSSadaf Ebrahimi 0: <abc<>def>
631*22dc650dSSadaf Ebrahimi    <abc<>
632*22dc650dSSadaf Ebrahimi 0: <>
633*22dc650dSSadaf Ebrahimi\= Expect no match
634*22dc650dSSadaf Ebrahimi    <abc
635*22dc650dSSadaf EbrahimiNo match
636*22dc650dSSadaf Ebrahimi
637*22dc650dSSadaf Ebrahimi/^(?(?=abc)\w{3}:|\d\d)$/
638*22dc650dSSadaf Ebrahimi    abc:
639*22dc650dSSadaf Ebrahimi 0: abc:
640*22dc650dSSadaf Ebrahimi    12
641*22dc650dSSadaf Ebrahimi 0: 12
642*22dc650dSSadaf Ebrahimi\= Expect no match
643*22dc650dSSadaf Ebrahimi    123
644*22dc650dSSadaf EbrahimiNo match
645*22dc650dSSadaf Ebrahimi    xyz
646*22dc650dSSadaf EbrahimiNo match
647*22dc650dSSadaf Ebrahimi
648*22dc650dSSadaf Ebrahimi/^(?(?!abc)\d\d|\w{3}:)$/
649*22dc650dSSadaf Ebrahimi    abc:
650*22dc650dSSadaf Ebrahimi 0: abc:
651*22dc650dSSadaf Ebrahimi    12
652*22dc650dSSadaf Ebrahimi 0: 12
653*22dc650dSSadaf Ebrahimi\= Expect no match
654*22dc650dSSadaf Ebrahimi    123
655*22dc650dSSadaf EbrahimiNo match
656*22dc650dSSadaf Ebrahimi    xyz
657*22dc650dSSadaf EbrahimiNo match
658*22dc650dSSadaf Ebrahimi
659*22dc650dSSadaf Ebrahimi/^(?=abc)\w{5}:$/
660*22dc650dSSadaf Ebrahimi    abcde:
661*22dc650dSSadaf Ebrahimi 0: abcde:
662*22dc650dSSadaf Ebrahimi\= Expect no match
663*22dc650dSSadaf Ebrahimi    abc..
664*22dc650dSSadaf EbrahimiNo match
665*22dc650dSSadaf Ebrahimi    123
666*22dc650dSSadaf EbrahimiNo match
667*22dc650dSSadaf Ebrahimi    vwxyz
668*22dc650dSSadaf EbrahimiNo match
669*22dc650dSSadaf Ebrahimi
670*22dc650dSSadaf Ebrahimi/^(?!abc)\d\d$/
671*22dc650dSSadaf Ebrahimi    12
672*22dc650dSSadaf Ebrahimi 0: 12
673*22dc650dSSadaf Ebrahimi\= Expect no match
674*22dc650dSSadaf Ebrahimi    abcde:
675*22dc650dSSadaf EbrahimiNo match
676*22dc650dSSadaf Ebrahimi    abc..
677*22dc650dSSadaf EbrahimiNo match
678*22dc650dSSadaf Ebrahimi    123
679*22dc650dSSadaf EbrahimiNo match
680*22dc650dSSadaf Ebrahimi    vwxyz
681*22dc650dSSadaf EbrahimiNo match
682*22dc650dSSadaf Ebrahimi
683*22dc650dSSadaf Ebrahimi/(?<=abc|xy)123/
684*22dc650dSSadaf Ebrahimi    abc12345
685*22dc650dSSadaf Ebrahimi 0: 123
686*22dc650dSSadaf Ebrahimi    wxy123z
687*22dc650dSSadaf Ebrahimi 0: 123
688*22dc650dSSadaf Ebrahimi\= Expect no match
689*22dc650dSSadaf Ebrahimi    123abc
690*22dc650dSSadaf EbrahimiNo match
691*22dc650dSSadaf Ebrahimi
692*22dc650dSSadaf Ebrahimi/(?<!abc|xy)123/
693*22dc650dSSadaf Ebrahimi    123abc
694*22dc650dSSadaf Ebrahimi 0: 123
695*22dc650dSSadaf Ebrahimi    mno123456
696*22dc650dSSadaf Ebrahimi 0: 123
697*22dc650dSSadaf Ebrahimi\= Expect no match
698*22dc650dSSadaf Ebrahimi    abc12345
699*22dc650dSSadaf EbrahimiNo match
700*22dc650dSSadaf Ebrahimi    wxy123z
701*22dc650dSSadaf EbrahimiNo match
702*22dc650dSSadaf Ebrahimi
703*22dc650dSSadaf Ebrahimi/abc(?C1)xyz/
704*22dc650dSSadaf Ebrahimi    abcxyz
705*22dc650dSSadaf Ebrahimi--->abcxyz
706*22dc650dSSadaf Ebrahimi  1 ^  ^       x
707*22dc650dSSadaf Ebrahimi 0: abcxyz
708*22dc650dSSadaf Ebrahimi    123abcxyz999
709*22dc650dSSadaf Ebrahimi--->123abcxyz999
710*22dc650dSSadaf Ebrahimi  1    ^  ^          x
711*22dc650dSSadaf Ebrahimi 0: abcxyz
712*22dc650dSSadaf Ebrahimi
713*22dc650dSSadaf Ebrahimi/(ab|cd){3,4}/auto_callout
714*22dc650dSSadaf Ebrahimi  ababab
715*22dc650dSSadaf Ebrahimi--->ababab
716*22dc650dSSadaf Ebrahimi +0 ^          (
717*22dc650dSSadaf Ebrahimi +1 ^          a
718*22dc650dSSadaf Ebrahimi +4 ^          c
719*22dc650dSSadaf Ebrahimi +2 ^^         b
720*22dc650dSSadaf Ebrahimi +3 ^ ^        |
721*22dc650dSSadaf Ebrahimi +1 ^ ^        a
722*22dc650dSSadaf Ebrahimi +4 ^ ^        c
723*22dc650dSSadaf Ebrahimi +2 ^  ^       b
724*22dc650dSSadaf Ebrahimi +3 ^   ^      |
725*22dc650dSSadaf Ebrahimi +1 ^   ^      a
726*22dc650dSSadaf Ebrahimi +4 ^   ^      c
727*22dc650dSSadaf Ebrahimi +2 ^    ^     b
728*22dc650dSSadaf Ebrahimi +3 ^     ^    |
729*22dc650dSSadaf Ebrahimi+12 ^     ^    End of pattern
730*22dc650dSSadaf Ebrahimi +1 ^     ^    a
731*22dc650dSSadaf Ebrahimi +4 ^     ^    c
732*22dc650dSSadaf Ebrahimi 0: ababab
733*22dc650dSSadaf Ebrahimi  abcdabcd
734*22dc650dSSadaf Ebrahimi--->abcdabcd
735*22dc650dSSadaf Ebrahimi +0 ^            (
736*22dc650dSSadaf Ebrahimi +1 ^            a
737*22dc650dSSadaf Ebrahimi +4 ^            c
738*22dc650dSSadaf Ebrahimi +2 ^^           b
739*22dc650dSSadaf Ebrahimi +3 ^ ^          |
740*22dc650dSSadaf Ebrahimi +1 ^ ^          a
741*22dc650dSSadaf Ebrahimi +4 ^ ^          c
742*22dc650dSSadaf Ebrahimi +5 ^  ^         d
743*22dc650dSSadaf Ebrahimi +6 ^   ^        ){3,4}
744*22dc650dSSadaf Ebrahimi +1 ^   ^        a
745*22dc650dSSadaf Ebrahimi +4 ^   ^        c
746*22dc650dSSadaf Ebrahimi +2 ^    ^       b
747*22dc650dSSadaf Ebrahimi +3 ^     ^      |
748*22dc650dSSadaf Ebrahimi+12 ^     ^      End of pattern
749*22dc650dSSadaf Ebrahimi +1 ^     ^      a
750*22dc650dSSadaf Ebrahimi +4 ^     ^      c
751*22dc650dSSadaf Ebrahimi +5 ^      ^     d
752*22dc650dSSadaf Ebrahimi +6 ^       ^    ){3,4}
753*22dc650dSSadaf Ebrahimi+12 ^       ^    End of pattern
754*22dc650dSSadaf Ebrahimi 0: abcdabcd
755*22dc650dSSadaf Ebrahimi 1: abcdab
756*22dc650dSSadaf Ebrahimi  abcdcdcdcdcd
757*22dc650dSSadaf Ebrahimi--->abcdcdcdcdcd
758*22dc650dSSadaf Ebrahimi +0 ^                (
759*22dc650dSSadaf Ebrahimi +1 ^                a
760*22dc650dSSadaf Ebrahimi +4 ^                c
761*22dc650dSSadaf Ebrahimi +2 ^^               b
762*22dc650dSSadaf Ebrahimi +3 ^ ^              |
763*22dc650dSSadaf Ebrahimi +1 ^ ^              a
764*22dc650dSSadaf Ebrahimi +4 ^ ^              c
765*22dc650dSSadaf Ebrahimi +5 ^  ^             d
766*22dc650dSSadaf Ebrahimi +6 ^   ^            ){3,4}
767*22dc650dSSadaf Ebrahimi +1 ^   ^            a
768*22dc650dSSadaf Ebrahimi +4 ^   ^            c
769*22dc650dSSadaf Ebrahimi +5 ^    ^           d
770*22dc650dSSadaf Ebrahimi +6 ^     ^          ){3,4}
771*22dc650dSSadaf Ebrahimi+12 ^     ^          End of pattern
772*22dc650dSSadaf Ebrahimi +1 ^     ^          a
773*22dc650dSSadaf Ebrahimi +4 ^     ^          c
774*22dc650dSSadaf Ebrahimi +5 ^      ^         d
775*22dc650dSSadaf Ebrahimi +6 ^       ^        ){3,4}
776*22dc650dSSadaf Ebrahimi+12 ^       ^        End of pattern
777*22dc650dSSadaf Ebrahimi 0: abcdcdcd
778*22dc650dSSadaf Ebrahimi 1: abcdcd
779*22dc650dSSadaf Ebrahimi
780*22dc650dSSadaf Ebrahimi/^abc/
781*22dc650dSSadaf Ebrahimi    abcdef
782*22dc650dSSadaf Ebrahimi 0: abc
783*22dc650dSSadaf Ebrahimi\= Expect no match
784*22dc650dSSadaf Ebrahimi    abcdef\=notbol
785*22dc650dSSadaf EbrahimiNo match
786*22dc650dSSadaf Ebrahimi
787*22dc650dSSadaf Ebrahimi/^(a*|xyz)/
788*22dc650dSSadaf Ebrahimi    bcd
789*22dc650dSSadaf Ebrahimi 0:
790*22dc650dSSadaf Ebrahimi    aaabcd
791*22dc650dSSadaf Ebrahimi 0: aaa
792*22dc650dSSadaf Ebrahimi    xyz
793*22dc650dSSadaf Ebrahimi 0: xyz
794*22dc650dSSadaf Ebrahimi 1:
795*22dc650dSSadaf Ebrahimi    xyz\=notempty
796*22dc650dSSadaf Ebrahimi 0: xyz
797*22dc650dSSadaf Ebrahimi\= Expect no match
798*22dc650dSSadaf Ebrahimi    bcd\=notempty
799*22dc650dSSadaf EbrahimiNo match
800*22dc650dSSadaf Ebrahimi
801*22dc650dSSadaf Ebrahimi/xyz$/
802*22dc650dSSadaf Ebrahimi    xyz
803*22dc650dSSadaf Ebrahimi 0: xyz
804*22dc650dSSadaf Ebrahimi    xyz\n
805*22dc650dSSadaf Ebrahimi 0: xyz
806*22dc650dSSadaf Ebrahimi\= Expect no match
807*22dc650dSSadaf Ebrahimi    xyz\=noteol
808*22dc650dSSadaf EbrahimiNo match
809*22dc650dSSadaf Ebrahimi    xyz\n\=noteol
810*22dc650dSSadaf EbrahimiNo match
811*22dc650dSSadaf Ebrahimi
812*22dc650dSSadaf Ebrahimi/xyz$/m
813*22dc650dSSadaf Ebrahimi    xyz
814*22dc650dSSadaf Ebrahimi 0: xyz
815*22dc650dSSadaf Ebrahimi    xyz\n
816*22dc650dSSadaf Ebrahimi 0: xyz
817*22dc650dSSadaf Ebrahimi    abcxyz\npqr
818*22dc650dSSadaf Ebrahimi 0: xyz
819*22dc650dSSadaf Ebrahimi    abcxyz\npqr\=noteol
820*22dc650dSSadaf Ebrahimi 0: xyz
821*22dc650dSSadaf Ebrahimi    xyz\n\=noteol
822*22dc650dSSadaf Ebrahimi 0: xyz
823*22dc650dSSadaf Ebrahimi\= Expect no match
824*22dc650dSSadaf Ebrahimi    xyz\=noteol
825*22dc650dSSadaf EbrahimiNo match
826*22dc650dSSadaf Ebrahimi
827*22dc650dSSadaf Ebrahimi/\Gabc/
828*22dc650dSSadaf Ebrahimi    abcdef
829*22dc650dSSadaf Ebrahimi 0: abc
830*22dc650dSSadaf Ebrahimi    defabcxyz\=offset=3
831*22dc650dSSadaf Ebrahimi 0: abc
832*22dc650dSSadaf Ebrahimi\= Expect no match
833*22dc650dSSadaf Ebrahimi    defabcxyz
834*22dc650dSSadaf EbrahimiNo match
835*22dc650dSSadaf Ebrahimi
836*22dc650dSSadaf Ebrahimi/^abcdef/
837*22dc650dSSadaf Ebrahimi    ab\=ps
838*22dc650dSSadaf EbrahimiPartial match: ab
839*22dc650dSSadaf Ebrahimi    abcde\=ps
840*22dc650dSSadaf EbrahimiPartial match: abcde
841*22dc650dSSadaf Ebrahimi    abcdef\=ps
842*22dc650dSSadaf Ebrahimi 0: abcdef
843*22dc650dSSadaf Ebrahimi\= Expect no match
844*22dc650dSSadaf Ebrahimi    abx\=ps
845*22dc650dSSadaf EbrahimiNo match
846*22dc650dSSadaf Ebrahimi
847*22dc650dSSadaf Ebrahimi/^a{2,4}\d+z/
848*22dc650dSSadaf Ebrahimi    a\=ps
849*22dc650dSSadaf EbrahimiPartial match: a
850*22dc650dSSadaf Ebrahimi    aa\=ps
851*22dc650dSSadaf EbrahimiPartial match: aa
852*22dc650dSSadaf Ebrahimi    aa2\=ps
853*22dc650dSSadaf EbrahimiPartial match: aa2
854*22dc650dSSadaf Ebrahimi    aaa\=ps
855*22dc650dSSadaf EbrahimiPartial match: aaa
856*22dc650dSSadaf Ebrahimi    aaa23\=ps
857*22dc650dSSadaf EbrahimiPartial match: aaa23
858*22dc650dSSadaf Ebrahimi    aaaa12345\=ps
859*22dc650dSSadaf EbrahimiPartial match: aaaa12345
860*22dc650dSSadaf Ebrahimi    aa0z\=ps
861*22dc650dSSadaf Ebrahimi 0: aa0z
862*22dc650dSSadaf Ebrahimi    aaaa4444444444444z\=ps
863*22dc650dSSadaf Ebrahimi 0: aaaa4444444444444z
864*22dc650dSSadaf Ebrahimi\= Expect no match
865*22dc650dSSadaf Ebrahimi    az\=ps
866*22dc650dSSadaf EbrahimiNo match
867*22dc650dSSadaf Ebrahimi    aaaaa\=ps
868*22dc650dSSadaf EbrahimiNo match
869*22dc650dSSadaf Ebrahimi    a56\=ps
870*22dc650dSSadaf EbrahimiNo match
871*22dc650dSSadaf Ebrahimi
872*22dc650dSSadaf Ebrahimi/^abcdef/
873*22dc650dSSadaf Ebrahimi   abc\=ps
874*22dc650dSSadaf EbrahimiPartial match: abc
875*22dc650dSSadaf Ebrahimi   def\=dfa_restart
876*22dc650dSSadaf Ebrahimi 0: def
877*22dc650dSSadaf Ebrahimi
878*22dc650dSSadaf Ebrahimi/(?<=foo)bar/
879*22dc650dSSadaf Ebrahimi   foob\=ps,offset=2,allusedtext
880*22dc650dSSadaf EbrahimiPartial match: foob
881*22dc650dSSadaf Ebrahimi               <<<
882*22dc650dSSadaf Ebrahimi   foobar...\=ps,dfa_restart,offset=4
883*22dc650dSSadaf Ebrahimi 0: ar
884*22dc650dSSadaf Ebrahimi   foobar\=offset=2
885*22dc650dSSadaf Ebrahimi 0: bar
886*22dc650dSSadaf Ebrahimi\= Expect no match
887*22dc650dSSadaf Ebrahimi   xyzfo\=ps
888*22dc650dSSadaf EbrahimiNo match
889*22dc650dSSadaf Ebrahimi   obar\=dfa_restart
890*22dc650dSSadaf EbrahimiNo match
891*22dc650dSSadaf Ebrahimi
892*22dc650dSSadaf Ebrahimi/(ab*(cd|ef))+X/
893*22dc650dSSadaf Ebrahimi    lkjhlkjhlkjhlkjhabbbbbbcdaefabbbbbbbefa\=ps,notbol,noteol
894*22dc650dSSadaf EbrahimiPartial match: abbbbbbcdaefabbbbbbbefa
895*22dc650dSSadaf Ebrahimi    cdabbbbbbbb\=ps,notbol,dfa_restart,noteol
896*22dc650dSSadaf EbrahimiPartial match: cdabbbbbbbb
897*22dc650dSSadaf Ebrahimi    efabbbbbbbbbbbbbbbb\=ps,notbol,dfa_restart,noteol
898*22dc650dSSadaf EbrahimiPartial match: efabbbbbbbbbbbbbbbb
899*22dc650dSSadaf Ebrahimi    bbbbbbbbbbbbcdXyasdfadf\=ps,notbol,dfa_restart,noteol
900*22dc650dSSadaf Ebrahimi 0: bbbbbbbbbbbbcdX
901*22dc650dSSadaf Ebrahimi\= Expect no match
902*22dc650dSSadaf Ebrahimi    adfadadaklhlkalkajhlkjahdfasdfasdfladsfjkj\=ps,noteol
903*22dc650dSSadaf EbrahimiNo match
904*22dc650dSSadaf Ebrahimi
905*22dc650dSSadaf Ebrahimi/the quick brown fox/
906*22dc650dSSadaf Ebrahimi    the quick brown fox
907*22dc650dSSadaf Ebrahimi 0: the quick brown fox
908*22dc650dSSadaf Ebrahimi    What do you know about the quick brown fox?
909*22dc650dSSadaf Ebrahimi 0: the quick brown fox
910*22dc650dSSadaf Ebrahimi\= Expect no match
911*22dc650dSSadaf Ebrahimi    The quick brown FOX
912*22dc650dSSadaf EbrahimiNo match
913*22dc650dSSadaf Ebrahimi    What do you know about THE QUICK BROWN FOX?
914*22dc650dSSadaf EbrahimiNo match
915*22dc650dSSadaf Ebrahimi
916*22dc650dSSadaf Ebrahimi/The quick brown fox/i
917*22dc650dSSadaf Ebrahimi    the quick brown fox
918*22dc650dSSadaf Ebrahimi 0: the quick brown fox
919*22dc650dSSadaf Ebrahimi    The quick brown FOX
920*22dc650dSSadaf Ebrahimi 0: The quick brown FOX
921*22dc650dSSadaf Ebrahimi    What do you know about the quick brown fox?
922*22dc650dSSadaf Ebrahimi 0: the quick brown fox
923*22dc650dSSadaf Ebrahimi    What do you know about THE QUICK BROWN FOX?
924*22dc650dSSadaf Ebrahimi 0: THE QUICK BROWN FOX
925*22dc650dSSadaf Ebrahimi
926*22dc650dSSadaf Ebrahimi/abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
927*22dc650dSSadaf Ebrahimi    abcd\t\n\r\f\a\e9;\$\\?caxyz
928*22dc650dSSadaf Ebrahimi 0: abcd\x09\x0a\x0d\x0c\x07\x1b9;$\?caxyz
929*22dc650dSSadaf Ebrahimi
930*22dc650dSSadaf Ebrahimi/a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
931*22dc650dSSadaf Ebrahimi    abxyzpqrrrabbxyyyypqAzz
932*22dc650dSSadaf Ebrahimi 0: abxyzpqrrrabbxyyyypqAzz
933*22dc650dSSadaf Ebrahimi    abxyzpqrrrabbxyyyypqAzz
934*22dc650dSSadaf Ebrahimi 0: abxyzpqrrrabbxyyyypqAzz
935*22dc650dSSadaf Ebrahimi    aabxyzpqrrrabbxyyyypqAzz
936*22dc650dSSadaf Ebrahimi 0: aabxyzpqrrrabbxyyyypqAzz
937*22dc650dSSadaf Ebrahimi    aaabxyzpqrrrabbxyyyypqAzz
938*22dc650dSSadaf Ebrahimi 0: aaabxyzpqrrrabbxyyyypqAzz
939*22dc650dSSadaf Ebrahimi    aaaabxyzpqrrrabbxyyyypqAzz
940*22dc650dSSadaf Ebrahimi 0: aaaabxyzpqrrrabbxyyyypqAzz
941*22dc650dSSadaf Ebrahimi    abcxyzpqrrrabbxyyyypqAzz
942*22dc650dSSadaf Ebrahimi 0: abcxyzpqrrrabbxyyyypqAzz
943*22dc650dSSadaf Ebrahimi    aabcxyzpqrrrabbxyyyypqAzz
944*22dc650dSSadaf Ebrahimi 0: aabcxyzpqrrrabbxyyyypqAzz
945*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypAzz
946*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypAzz
947*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypqAzz
948*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypqAzz
949*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypqqAzz
950*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypqqAzz
951*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypqqqAzz
952*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypqqqAzz
953*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypqqqqAzz
954*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypqqqqAzz
955*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypqqqqqAzz
956*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypqqqqqAzz
957*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypqqqqqqAzz
958*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz
959*22dc650dSSadaf Ebrahimi    aaaabcxyzpqrrrabbxyyyypqAzz
960*22dc650dSSadaf Ebrahimi 0: aaaabcxyzpqrrrabbxyyyypqAzz
961*22dc650dSSadaf Ebrahimi    abxyzzpqrrrabbxyyyypqAzz
962*22dc650dSSadaf Ebrahimi 0: abxyzzpqrrrabbxyyyypqAzz
963*22dc650dSSadaf Ebrahimi    aabxyzzzpqrrrabbxyyyypqAzz
964*22dc650dSSadaf Ebrahimi 0: aabxyzzzpqrrrabbxyyyypqAzz
965*22dc650dSSadaf Ebrahimi    aaabxyzzzzpqrrrabbxyyyypqAzz
966*22dc650dSSadaf Ebrahimi 0: aaabxyzzzzpqrrrabbxyyyypqAzz
967*22dc650dSSadaf Ebrahimi    aaaabxyzzzzpqrrrabbxyyyypqAzz
968*22dc650dSSadaf Ebrahimi 0: aaaabxyzzzzpqrrrabbxyyyypqAzz
969*22dc650dSSadaf Ebrahimi    abcxyzzpqrrrabbxyyyypqAzz
970*22dc650dSSadaf Ebrahimi 0: abcxyzzpqrrrabbxyyyypqAzz
971*22dc650dSSadaf Ebrahimi    aabcxyzzzpqrrrabbxyyyypqAzz
972*22dc650dSSadaf Ebrahimi 0: aabcxyzzzpqrrrabbxyyyypqAzz
973*22dc650dSSadaf Ebrahimi    aaabcxyzzzzpqrrrabbxyyyypqAzz
974*22dc650dSSadaf Ebrahimi 0: aaabcxyzzzzpqrrrabbxyyyypqAzz
975*22dc650dSSadaf Ebrahimi    aaaabcxyzzzzpqrrrabbxyyyypqAzz
976*22dc650dSSadaf Ebrahimi 0: aaaabcxyzzzzpqrrrabbxyyyypqAzz
977*22dc650dSSadaf Ebrahimi    aaaabcxyzzzzpqrrrabbbxyyyypqAzz
978*22dc650dSSadaf Ebrahimi 0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz
979*22dc650dSSadaf Ebrahimi    aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
980*22dc650dSSadaf Ebrahimi 0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
981*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypABzz
982*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypABzz
983*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypABBzz
984*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypABBzz
985*22dc650dSSadaf Ebrahimi    >>>aaabxyzpqrrrabbxyyyypqAzz
986*22dc650dSSadaf Ebrahimi 0: aaabxyzpqrrrabbxyyyypqAzz
987*22dc650dSSadaf Ebrahimi    >aaaabxyzpqrrrabbxyyyypqAzz
988*22dc650dSSadaf Ebrahimi 0: aaaabxyzpqrrrabbxyyyypqAzz
989*22dc650dSSadaf Ebrahimi    >>>>abcxyzpqrrrabbxyyyypqAzz
990*22dc650dSSadaf Ebrahimi 0: abcxyzpqrrrabbxyyyypqAzz
991*22dc650dSSadaf Ebrahimi\= Expect no match
992*22dc650dSSadaf Ebrahimi    abxyzpqrrabbxyyyypqAzz
993*22dc650dSSadaf EbrahimiNo match
994*22dc650dSSadaf Ebrahimi    abxyzpqrrrrabbxyyyypqAzz
995*22dc650dSSadaf EbrahimiNo match
996*22dc650dSSadaf Ebrahimi    abxyzpqrrrabxyyyypqAzz
997*22dc650dSSadaf EbrahimiNo match
998*22dc650dSSadaf Ebrahimi    aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
999*22dc650dSSadaf EbrahimiNo match
1000*22dc650dSSadaf Ebrahimi    aaaabcxyzzzzpqrrrabbbxyyypqAzz
1001*22dc650dSSadaf EbrahimiNo match
1002*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
1003*22dc650dSSadaf EbrahimiNo match
1004*22dc650dSSadaf Ebrahimi
1005*22dc650dSSadaf Ebrahimi/^(abc){1,2}zz/
1006*22dc650dSSadaf Ebrahimi    abczz
1007*22dc650dSSadaf Ebrahimi 0: abczz
1008*22dc650dSSadaf Ebrahimi    abcabczz
1009*22dc650dSSadaf Ebrahimi 0: abcabczz
1010*22dc650dSSadaf Ebrahimi\= Expect no match
1011*22dc650dSSadaf Ebrahimi    zz
1012*22dc650dSSadaf EbrahimiNo match
1013*22dc650dSSadaf Ebrahimi    abcabcabczz
1014*22dc650dSSadaf EbrahimiNo match
1015*22dc650dSSadaf Ebrahimi    >>abczz
1016*22dc650dSSadaf EbrahimiNo match
1017*22dc650dSSadaf Ebrahimi
1018*22dc650dSSadaf Ebrahimi/^(b+?|a){1,2}?c/
1019*22dc650dSSadaf Ebrahimi    bc
1020*22dc650dSSadaf Ebrahimi 0: bc
1021*22dc650dSSadaf Ebrahimi    bbc
1022*22dc650dSSadaf Ebrahimi 0: bbc
1023*22dc650dSSadaf Ebrahimi    bbbc
1024*22dc650dSSadaf Ebrahimi 0: bbbc
1025*22dc650dSSadaf Ebrahimi    bac
1026*22dc650dSSadaf Ebrahimi 0: bac
1027*22dc650dSSadaf Ebrahimi    bbac
1028*22dc650dSSadaf Ebrahimi 0: bbac
1029*22dc650dSSadaf Ebrahimi    aac
1030*22dc650dSSadaf Ebrahimi 0: aac
1031*22dc650dSSadaf Ebrahimi    abbbbbbbbbbbc
1032*22dc650dSSadaf Ebrahimi 0: abbbbbbbbbbbc
1033*22dc650dSSadaf Ebrahimi    bbbbbbbbbbbac
1034*22dc650dSSadaf Ebrahimi 0: bbbbbbbbbbbac
1035*22dc650dSSadaf Ebrahimi\= Expect no match
1036*22dc650dSSadaf Ebrahimi    aaac
1037*22dc650dSSadaf EbrahimiNo match
1038*22dc650dSSadaf Ebrahimi    abbbbbbbbbbbac
1039*22dc650dSSadaf EbrahimiNo match
1040*22dc650dSSadaf Ebrahimi
1041*22dc650dSSadaf Ebrahimi/^(b+|a){1,2}c/
1042*22dc650dSSadaf Ebrahimi    bc
1043*22dc650dSSadaf Ebrahimi 0: bc
1044*22dc650dSSadaf Ebrahimi    bbc
1045*22dc650dSSadaf Ebrahimi 0: bbc
1046*22dc650dSSadaf Ebrahimi    bbbc
1047*22dc650dSSadaf Ebrahimi 0: bbbc
1048*22dc650dSSadaf Ebrahimi    bac
1049*22dc650dSSadaf Ebrahimi 0: bac
1050*22dc650dSSadaf Ebrahimi    bbac
1051*22dc650dSSadaf Ebrahimi 0: bbac
1052*22dc650dSSadaf Ebrahimi    aac
1053*22dc650dSSadaf Ebrahimi 0: aac
1054*22dc650dSSadaf Ebrahimi    abbbbbbbbbbbc
1055*22dc650dSSadaf Ebrahimi 0: abbbbbbbbbbbc
1056*22dc650dSSadaf Ebrahimi    bbbbbbbbbbbac
1057*22dc650dSSadaf Ebrahimi 0: bbbbbbbbbbbac
1058*22dc650dSSadaf Ebrahimi\= Expect no match
1059*22dc650dSSadaf Ebrahimi    aaac
1060*22dc650dSSadaf EbrahimiNo match
1061*22dc650dSSadaf Ebrahimi    abbbbbbbbbbbac
1062*22dc650dSSadaf EbrahimiNo match
1063*22dc650dSSadaf Ebrahimi
1064*22dc650dSSadaf Ebrahimi/^(b+|a){1,2}?bc/
1065*22dc650dSSadaf Ebrahimi    bbc
1066*22dc650dSSadaf Ebrahimi 0: bbc
1067*22dc650dSSadaf Ebrahimi
1068*22dc650dSSadaf Ebrahimi/^(b*|ba){1,2}?bc/
1069*22dc650dSSadaf Ebrahimi    babc
1070*22dc650dSSadaf Ebrahimi 0: babc
1071*22dc650dSSadaf Ebrahimi    bbabc
1072*22dc650dSSadaf Ebrahimi 0: bbabc
1073*22dc650dSSadaf Ebrahimi    bababc
1074*22dc650dSSadaf Ebrahimi 0: bababc
1075*22dc650dSSadaf Ebrahimi\= Expect no match
1076*22dc650dSSadaf Ebrahimi    bababbc
1077*22dc650dSSadaf EbrahimiNo match
1078*22dc650dSSadaf Ebrahimi    babababc
1079*22dc650dSSadaf EbrahimiNo match
1080*22dc650dSSadaf Ebrahimi
1081*22dc650dSSadaf Ebrahimi/^(ba|b*){1,2}?bc/
1082*22dc650dSSadaf Ebrahimi    babc
1083*22dc650dSSadaf Ebrahimi 0: babc
1084*22dc650dSSadaf Ebrahimi    bbabc
1085*22dc650dSSadaf Ebrahimi 0: bbabc
1086*22dc650dSSadaf Ebrahimi    bababc
1087*22dc650dSSadaf Ebrahimi 0: bababc
1088*22dc650dSSadaf Ebrahimi\= Expect no match
1089*22dc650dSSadaf Ebrahimi    bababbc
1090*22dc650dSSadaf EbrahimiNo match
1091*22dc650dSSadaf Ebrahimi    babababc
1092*22dc650dSSadaf EbrahimiNo match
1093*22dc650dSSadaf Ebrahimi
1094*22dc650dSSadaf Ebrahimi/^\ca\cA\c[\c{\c:/
1095*22dc650dSSadaf Ebrahimi    \x01\x01\e;z
1096*22dc650dSSadaf Ebrahimi 0: \x01\x01\x1b;z
1097*22dc650dSSadaf Ebrahimi
1098*22dc650dSSadaf Ebrahimi/^[ab\]cde]/
1099*22dc650dSSadaf Ebrahimi    athing
1100*22dc650dSSadaf Ebrahimi 0: a
1101*22dc650dSSadaf Ebrahimi    bthing
1102*22dc650dSSadaf Ebrahimi 0: b
1103*22dc650dSSadaf Ebrahimi    ]thing
1104*22dc650dSSadaf Ebrahimi 0: ]
1105*22dc650dSSadaf Ebrahimi    cthing
1106*22dc650dSSadaf Ebrahimi 0: c
1107*22dc650dSSadaf Ebrahimi    dthing
1108*22dc650dSSadaf Ebrahimi 0: d
1109*22dc650dSSadaf Ebrahimi    ething
1110*22dc650dSSadaf Ebrahimi 0: e
1111*22dc650dSSadaf Ebrahimi\= Expect no match
1112*22dc650dSSadaf Ebrahimi    fthing
1113*22dc650dSSadaf EbrahimiNo match
1114*22dc650dSSadaf Ebrahimi    [thing
1115*22dc650dSSadaf EbrahimiNo match
1116*22dc650dSSadaf Ebrahimi    \\thing
1117*22dc650dSSadaf EbrahimiNo match
1118*22dc650dSSadaf Ebrahimi
1119*22dc650dSSadaf Ebrahimi/^[]cde]/
1120*22dc650dSSadaf Ebrahimi    ]thing
1121*22dc650dSSadaf Ebrahimi 0: ]
1122*22dc650dSSadaf Ebrahimi    cthing
1123*22dc650dSSadaf Ebrahimi 0: c
1124*22dc650dSSadaf Ebrahimi    dthing
1125*22dc650dSSadaf Ebrahimi 0: d
1126*22dc650dSSadaf Ebrahimi    ething
1127*22dc650dSSadaf Ebrahimi 0: e
1128*22dc650dSSadaf Ebrahimi\= Expect no match
1129*22dc650dSSadaf Ebrahimi    athing
1130*22dc650dSSadaf EbrahimiNo match
1131*22dc650dSSadaf Ebrahimi    fthing
1132*22dc650dSSadaf EbrahimiNo match
1133*22dc650dSSadaf Ebrahimi
1134*22dc650dSSadaf Ebrahimi/^[^ab\]cde]/
1135*22dc650dSSadaf Ebrahimi    fthing
1136*22dc650dSSadaf Ebrahimi 0: f
1137*22dc650dSSadaf Ebrahimi    [thing
1138*22dc650dSSadaf Ebrahimi 0: [
1139*22dc650dSSadaf Ebrahimi    \\thing
1140*22dc650dSSadaf Ebrahimi 0: \
1141*22dc650dSSadaf Ebrahimi\= Expect no match
1142*22dc650dSSadaf Ebrahimi    athing
1143*22dc650dSSadaf EbrahimiNo match
1144*22dc650dSSadaf Ebrahimi    bthing
1145*22dc650dSSadaf EbrahimiNo match
1146*22dc650dSSadaf Ebrahimi    ]thing
1147*22dc650dSSadaf EbrahimiNo match
1148*22dc650dSSadaf Ebrahimi    cthing
1149*22dc650dSSadaf EbrahimiNo match
1150*22dc650dSSadaf Ebrahimi    dthing
1151*22dc650dSSadaf EbrahimiNo match
1152*22dc650dSSadaf Ebrahimi    ething
1153*22dc650dSSadaf EbrahimiNo match
1154*22dc650dSSadaf Ebrahimi
1155*22dc650dSSadaf Ebrahimi/^[^]cde]/
1156*22dc650dSSadaf Ebrahimi    athing
1157*22dc650dSSadaf Ebrahimi 0: a
1158*22dc650dSSadaf Ebrahimi    fthing
1159*22dc650dSSadaf Ebrahimi 0: f
1160*22dc650dSSadaf Ebrahimi\= Expect no match
1161*22dc650dSSadaf Ebrahimi    ]thing
1162*22dc650dSSadaf EbrahimiNo match
1163*22dc650dSSadaf Ebrahimi    cthing
1164*22dc650dSSadaf EbrahimiNo match
1165*22dc650dSSadaf Ebrahimi    dthing
1166*22dc650dSSadaf EbrahimiNo match
1167*22dc650dSSadaf Ebrahimi    ething
1168*22dc650dSSadaf EbrahimiNo match
1169*22dc650dSSadaf Ebrahimi
1170*22dc650dSSadaf Ebrahimi/^\�/
1171*22dc650dSSadaf Ebrahimi1172*22dc650dSSadaf Ebrahimi 0: \x81
1173*22dc650dSSadaf Ebrahimi
1174*22dc650dSSadaf Ebrahimi/^�/
1175*22dc650dSSadaf Ebrahimi1176*22dc650dSSadaf Ebrahimi 0: \xff
1177*22dc650dSSadaf Ebrahimi
1178*22dc650dSSadaf Ebrahimi/^[0-9]+$/
1179*22dc650dSSadaf Ebrahimi    0
1180*22dc650dSSadaf Ebrahimi 0: 0
1181*22dc650dSSadaf Ebrahimi    1
1182*22dc650dSSadaf Ebrahimi 0: 1
1183*22dc650dSSadaf Ebrahimi    2
1184*22dc650dSSadaf Ebrahimi 0: 2
1185*22dc650dSSadaf Ebrahimi    3
1186*22dc650dSSadaf Ebrahimi 0: 3
1187*22dc650dSSadaf Ebrahimi    4
1188*22dc650dSSadaf Ebrahimi 0: 4
1189*22dc650dSSadaf Ebrahimi    5
1190*22dc650dSSadaf Ebrahimi 0: 5
1191*22dc650dSSadaf Ebrahimi    6
1192*22dc650dSSadaf Ebrahimi 0: 6
1193*22dc650dSSadaf Ebrahimi    7
1194*22dc650dSSadaf Ebrahimi 0: 7
1195*22dc650dSSadaf Ebrahimi    8
1196*22dc650dSSadaf Ebrahimi 0: 8
1197*22dc650dSSadaf Ebrahimi    9
1198*22dc650dSSadaf Ebrahimi 0: 9
1199*22dc650dSSadaf Ebrahimi    10
1200*22dc650dSSadaf Ebrahimi 0: 10
1201*22dc650dSSadaf Ebrahimi    100
1202*22dc650dSSadaf Ebrahimi 0: 100
1203*22dc650dSSadaf Ebrahimi\= Expect no match
1204*22dc650dSSadaf Ebrahimi    abc
1205*22dc650dSSadaf EbrahimiNo match
1206*22dc650dSSadaf Ebrahimi
1207*22dc650dSSadaf Ebrahimi/^.*nter/
1208*22dc650dSSadaf Ebrahimi    enter
1209*22dc650dSSadaf Ebrahimi 0: enter
1210*22dc650dSSadaf Ebrahimi    inter
1211*22dc650dSSadaf Ebrahimi 0: inter
1212*22dc650dSSadaf Ebrahimi    uponter
1213*22dc650dSSadaf Ebrahimi 0: uponter
1214*22dc650dSSadaf Ebrahimi
1215*22dc650dSSadaf Ebrahimi/^xxx[0-9]+$/
1216*22dc650dSSadaf Ebrahimi    xxx0
1217*22dc650dSSadaf Ebrahimi 0: xxx0
1218*22dc650dSSadaf Ebrahimi    xxx1234
1219*22dc650dSSadaf Ebrahimi 0: xxx1234
1220*22dc650dSSadaf Ebrahimi\= Expect no match
1221*22dc650dSSadaf Ebrahimi    xxx
1222*22dc650dSSadaf EbrahimiNo match
1223*22dc650dSSadaf Ebrahimi
1224*22dc650dSSadaf Ebrahimi/^.+[0-9][0-9][0-9]$/
1225*22dc650dSSadaf Ebrahimi    x123
1226*22dc650dSSadaf Ebrahimi 0: x123
1227*22dc650dSSadaf Ebrahimi    xx123
1228*22dc650dSSadaf Ebrahimi 0: xx123
1229*22dc650dSSadaf Ebrahimi    123456
1230*22dc650dSSadaf Ebrahimi 0: 123456
1231*22dc650dSSadaf Ebrahimi    x1234
1232*22dc650dSSadaf Ebrahimi 0: x1234
1233*22dc650dSSadaf Ebrahimi\= Expect no match
1234*22dc650dSSadaf Ebrahimi    123
1235*22dc650dSSadaf EbrahimiNo match
1236*22dc650dSSadaf Ebrahimi
1237*22dc650dSSadaf Ebrahimi/^.+?[0-9][0-9][0-9]$/
1238*22dc650dSSadaf Ebrahimi    x123
1239*22dc650dSSadaf Ebrahimi 0: x123
1240*22dc650dSSadaf Ebrahimi    xx123
1241*22dc650dSSadaf Ebrahimi 0: xx123
1242*22dc650dSSadaf Ebrahimi    123456
1243*22dc650dSSadaf Ebrahimi 0: 123456
1244*22dc650dSSadaf Ebrahimi    x1234
1245*22dc650dSSadaf Ebrahimi 0: x1234
1246*22dc650dSSadaf Ebrahimi\= Expect no match
1247*22dc650dSSadaf Ebrahimi    123
1248*22dc650dSSadaf EbrahimiNo match
1249*22dc650dSSadaf Ebrahimi
1250*22dc650dSSadaf Ebrahimi/^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
1251*22dc650dSSadaf Ebrahimi    abc!pqr=apquxz.ixr.zzz.ac.uk
1252*22dc650dSSadaf Ebrahimi 0: abc!pqr=apquxz.ixr.zzz.ac.uk
1253*22dc650dSSadaf Ebrahimi\= Expect no match
1254*22dc650dSSadaf Ebrahimi    !pqr=apquxz.ixr.zzz.ac.uk
1255*22dc650dSSadaf EbrahimiNo match
1256*22dc650dSSadaf Ebrahimi    abc!=apquxz.ixr.zzz.ac.uk
1257*22dc650dSSadaf EbrahimiNo match
1258*22dc650dSSadaf Ebrahimi    abc!pqr=apquxz:ixr.zzz.ac.uk
1259*22dc650dSSadaf EbrahimiNo match
1260*22dc650dSSadaf Ebrahimi    abc!pqr=apquxz.ixr.zzz.ac.ukk
1261*22dc650dSSadaf EbrahimiNo match
1262*22dc650dSSadaf Ebrahimi
1263*22dc650dSSadaf Ebrahimi/:/
1264*22dc650dSSadaf Ebrahimi    Well, we need a colon: somewhere
1265*22dc650dSSadaf Ebrahimi 0: :
1266*22dc650dSSadaf Ebrahimi\= Expect no match
1267*22dc650dSSadaf Ebrahimi    No match without a colon
1268*22dc650dSSadaf EbrahimiNo match
1269*22dc650dSSadaf Ebrahimi
1270*22dc650dSSadaf Ebrahimi/([\da-f:]+)$/i
1271*22dc650dSSadaf Ebrahimi    0abc
1272*22dc650dSSadaf Ebrahimi 0: 0abc
1273*22dc650dSSadaf Ebrahimi    abc
1274*22dc650dSSadaf Ebrahimi 0: abc
1275*22dc650dSSadaf Ebrahimi    fed
1276*22dc650dSSadaf Ebrahimi 0: fed
1277*22dc650dSSadaf Ebrahimi    E
1278*22dc650dSSadaf Ebrahimi 0: E
1279*22dc650dSSadaf Ebrahimi    ::
1280*22dc650dSSadaf Ebrahimi 0: ::
1281*22dc650dSSadaf Ebrahimi    5f03:12C0::932e
1282*22dc650dSSadaf Ebrahimi 0: 5f03:12C0::932e
1283*22dc650dSSadaf Ebrahimi    fed def
1284*22dc650dSSadaf Ebrahimi 0: def
1285*22dc650dSSadaf Ebrahimi    Any old stuff
1286*22dc650dSSadaf Ebrahimi 0: ff
1287*22dc650dSSadaf Ebrahimi\= Expect no match
1288*22dc650dSSadaf Ebrahimi    0zzz
1289*22dc650dSSadaf EbrahimiNo match
1290*22dc650dSSadaf Ebrahimi    gzzz
1291*22dc650dSSadaf EbrahimiNo match
1292*22dc650dSSadaf Ebrahimi    fed\x20
1293*22dc650dSSadaf EbrahimiNo match
1294*22dc650dSSadaf Ebrahimi    Any old rubbish
1295*22dc650dSSadaf EbrahimiNo match
1296*22dc650dSSadaf Ebrahimi
1297*22dc650dSSadaf Ebrahimi/^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
1298*22dc650dSSadaf Ebrahimi    .1.2.3
1299*22dc650dSSadaf Ebrahimi 0: .1.2.3
1300*22dc650dSSadaf Ebrahimi    A.12.123.0
1301*22dc650dSSadaf Ebrahimi 0: A.12.123.0
1302*22dc650dSSadaf Ebrahimi\= Expect no match
1303*22dc650dSSadaf Ebrahimi    .1.2.3333
1304*22dc650dSSadaf EbrahimiNo match
1305*22dc650dSSadaf Ebrahimi    1.2.3
1306*22dc650dSSadaf EbrahimiNo match
1307*22dc650dSSadaf Ebrahimi    1234.2.3
1308*22dc650dSSadaf EbrahimiNo match
1309*22dc650dSSadaf Ebrahimi
1310*22dc650dSSadaf Ebrahimi/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
1311*22dc650dSSadaf Ebrahimi    1 IN SOA non-sp1 non-sp2(
1312*22dc650dSSadaf Ebrahimi 0: 1 IN SOA non-sp1 non-sp2(
1313*22dc650dSSadaf Ebrahimi    1    IN    SOA    non-sp1    non-sp2   (
1314*22dc650dSSadaf Ebrahimi 0: 1    IN    SOA    non-sp1    non-sp2   (
1315*22dc650dSSadaf Ebrahimi\= Expect no match
1316*22dc650dSSadaf Ebrahimi    1IN SOA non-sp1 non-sp2(
1317*22dc650dSSadaf EbrahimiNo match
1318*22dc650dSSadaf Ebrahimi
1319*22dc650dSSadaf Ebrahimi/^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
1320*22dc650dSSadaf Ebrahimi    a.
1321*22dc650dSSadaf Ebrahimi 0: a.
1322*22dc650dSSadaf Ebrahimi    Z.
1323*22dc650dSSadaf Ebrahimi 0: Z.
1324*22dc650dSSadaf Ebrahimi    2.
1325*22dc650dSSadaf Ebrahimi 0: 2.
1326*22dc650dSSadaf Ebrahimi    ab-c.pq-r.
1327*22dc650dSSadaf Ebrahimi 0: ab-c.pq-r.
1328*22dc650dSSadaf Ebrahimi    sxk.zzz.ac.uk.
1329*22dc650dSSadaf Ebrahimi 0: sxk.zzz.ac.uk.
1330*22dc650dSSadaf Ebrahimi    x-.y-.
1331*22dc650dSSadaf Ebrahimi 0: x-.y-.
1332*22dc650dSSadaf Ebrahimi\= Expect no match
1333*22dc650dSSadaf Ebrahimi    -abc.peq.
1334*22dc650dSSadaf EbrahimiNo match
1335*22dc650dSSadaf Ebrahimi
1336*22dc650dSSadaf Ebrahimi/^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
1337*22dc650dSSadaf Ebrahimi    *.a
1338*22dc650dSSadaf Ebrahimi 0: *.a
1339*22dc650dSSadaf Ebrahimi    *.b0-a
1340*22dc650dSSadaf Ebrahimi 0: *.b0-a
1341*22dc650dSSadaf Ebrahimi    *.c3-b.c
1342*22dc650dSSadaf Ebrahimi 0: *.c3-b.c
1343*22dc650dSSadaf Ebrahimi    *.c-a.b-c
1344*22dc650dSSadaf Ebrahimi 0: *.c-a.b-c
1345*22dc650dSSadaf Ebrahimi\= Expect no match
1346*22dc650dSSadaf Ebrahimi    *.0
1347*22dc650dSSadaf EbrahimiNo match
1348*22dc650dSSadaf Ebrahimi    *.a-
1349*22dc650dSSadaf EbrahimiNo match
1350*22dc650dSSadaf Ebrahimi    *.a-b.c-
1351*22dc650dSSadaf EbrahimiNo match
1352*22dc650dSSadaf Ebrahimi    *.c-a.0-c
1353*22dc650dSSadaf EbrahimiNo match
1354*22dc650dSSadaf Ebrahimi
1355*22dc650dSSadaf Ebrahimi/^(?=ab(de))(abd)(e)/
1356*22dc650dSSadaf Ebrahimi    abde
1357*22dc650dSSadaf Ebrahimi 0: abde
1358*22dc650dSSadaf Ebrahimi
1359*22dc650dSSadaf Ebrahimi/^(?!(ab)de|x)(abd)(f)/
1360*22dc650dSSadaf Ebrahimi    abdf
1361*22dc650dSSadaf Ebrahimi 0: abdf
1362*22dc650dSSadaf Ebrahimi
1363*22dc650dSSadaf Ebrahimi/^(?=(ab(cd)))(ab)/
1364*22dc650dSSadaf Ebrahimi    abcd
1365*22dc650dSSadaf Ebrahimi 0: ab
1366*22dc650dSSadaf Ebrahimi
1367*22dc650dSSadaf Ebrahimi/^[\da-f](\.[\da-f])*$/i
1368*22dc650dSSadaf Ebrahimi    a.b.c.d
1369*22dc650dSSadaf Ebrahimi 0: a.b.c.d
1370*22dc650dSSadaf Ebrahimi    A.B.C.D
1371*22dc650dSSadaf Ebrahimi 0: A.B.C.D
1372*22dc650dSSadaf Ebrahimi    a.b.c.1.2.3.C
1373*22dc650dSSadaf Ebrahimi 0: a.b.c.1.2.3.C
1374*22dc650dSSadaf Ebrahimi
1375*22dc650dSSadaf Ebrahimi/^\".*\"\s*(;.*)?$/
1376*22dc650dSSadaf Ebrahimi    \"1234\"
1377*22dc650dSSadaf Ebrahimi 0: "1234"
1378*22dc650dSSadaf Ebrahimi    \"abcd\" ;
1379*22dc650dSSadaf Ebrahimi 0: "abcd" ;
1380*22dc650dSSadaf Ebrahimi    \"\" ; rhubarb
1381*22dc650dSSadaf Ebrahimi 0: "" ; rhubarb
1382*22dc650dSSadaf Ebrahimi\= Expect no match
1383*22dc650dSSadaf Ebrahimi    \"1234\" : things
1384*22dc650dSSadaf EbrahimiNo match
1385*22dc650dSSadaf Ebrahimi
1386*22dc650dSSadaf Ebrahimi/^$/
1387*22dc650dSSadaf Ebrahimi    \
1388*22dc650dSSadaf Ebrahimi 0:
1389*22dc650dSSadaf Ebrahimi
1390*22dc650dSSadaf Ebrahimi/   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/x
1391*22dc650dSSadaf Ebrahimi    ab c
1392*22dc650dSSadaf Ebrahimi 0: ab c
1393*22dc650dSSadaf Ebrahimi\= Expect no match
1394*22dc650dSSadaf Ebrahimi    abc
1395*22dc650dSSadaf EbrahimiNo match
1396*22dc650dSSadaf Ebrahimi    ab cde
1397*22dc650dSSadaf EbrahimiNo match
1398*22dc650dSSadaf Ebrahimi
1399*22dc650dSSadaf Ebrahimi/(?x)   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/
1400*22dc650dSSadaf Ebrahimi    ab c
1401*22dc650dSSadaf Ebrahimi 0: ab c
1402*22dc650dSSadaf Ebrahimi\= Expect no match
1403*22dc650dSSadaf Ebrahimi    abc
1404*22dc650dSSadaf EbrahimiNo match
1405*22dc650dSSadaf Ebrahimi    ab cde
1406*22dc650dSSadaf EbrahimiNo match
1407*22dc650dSSadaf Ebrahimi
1408*22dc650dSSadaf Ebrahimi/^   a\ b[c ]d       $/x
1409*22dc650dSSadaf Ebrahimi    a bcd
1410*22dc650dSSadaf Ebrahimi 0: a bcd
1411*22dc650dSSadaf Ebrahimi    a b d
1412*22dc650dSSadaf Ebrahimi 0: a b d
1413*22dc650dSSadaf Ebrahimi\= Expect no match
1414*22dc650dSSadaf Ebrahimi    abcd
1415*22dc650dSSadaf EbrahimiNo match
1416*22dc650dSSadaf Ebrahimi    ab d
1417*22dc650dSSadaf EbrahimiNo match
1418*22dc650dSSadaf Ebrahimi
1419*22dc650dSSadaf Ebrahimi/^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
1420*22dc650dSSadaf Ebrahimi    abcdefhijklm
1421*22dc650dSSadaf Ebrahimi 0: abcdefhijklm
1422*22dc650dSSadaf Ebrahimi
1423*22dc650dSSadaf Ebrahimi/^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
1424*22dc650dSSadaf Ebrahimi    abcdefhijklm
1425*22dc650dSSadaf Ebrahimi 0: abcdefhijklm
1426*22dc650dSSadaf Ebrahimi
1427*22dc650dSSadaf Ebrahimi/^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
1428*22dc650dSSadaf Ebrahimi    a+ Z0+\x08\n\x1d\x12
1429*22dc650dSSadaf Ebrahimi 0: a+ Z0+\x08\x0a\x1d\x12
1430*22dc650dSSadaf Ebrahimi
1431*22dc650dSSadaf Ebrahimi/^[.^$|()*+?{,}]+/
1432*22dc650dSSadaf Ebrahimi    .^\$(*+)|{?,?}
1433*22dc650dSSadaf Ebrahimi 0: .^$(*+)|{?,?}
1434*22dc650dSSadaf Ebrahimi
1435*22dc650dSSadaf Ebrahimi/^a*\w/
1436*22dc650dSSadaf Ebrahimi    z
1437*22dc650dSSadaf Ebrahimi 0: z
1438*22dc650dSSadaf Ebrahimi    az
1439*22dc650dSSadaf Ebrahimi 0: az
1440*22dc650dSSadaf Ebrahimi 1: a
1441*22dc650dSSadaf Ebrahimi    aaaz
1442*22dc650dSSadaf Ebrahimi 0: aaaz
1443*22dc650dSSadaf Ebrahimi 1: aaa
1444*22dc650dSSadaf Ebrahimi 2: aa
1445*22dc650dSSadaf Ebrahimi 3: a
1446*22dc650dSSadaf Ebrahimi    a
1447*22dc650dSSadaf Ebrahimi 0: a
1448*22dc650dSSadaf Ebrahimi    aa
1449*22dc650dSSadaf Ebrahimi 0: aa
1450*22dc650dSSadaf Ebrahimi 1: a
1451*22dc650dSSadaf Ebrahimi    aaaa
1452*22dc650dSSadaf Ebrahimi 0: aaaa
1453*22dc650dSSadaf Ebrahimi 1: aaa
1454*22dc650dSSadaf Ebrahimi 2: aa
1455*22dc650dSSadaf Ebrahimi 3: a
1456*22dc650dSSadaf Ebrahimi    a+
1457*22dc650dSSadaf Ebrahimi 0: a
1458*22dc650dSSadaf Ebrahimi    aa+
1459*22dc650dSSadaf Ebrahimi 0: aa
1460*22dc650dSSadaf Ebrahimi 1: a
1461*22dc650dSSadaf Ebrahimi
1462*22dc650dSSadaf Ebrahimi/^a*?\w/
1463*22dc650dSSadaf Ebrahimi    z
1464*22dc650dSSadaf Ebrahimi 0: z
1465*22dc650dSSadaf Ebrahimi    az
1466*22dc650dSSadaf Ebrahimi 0: az
1467*22dc650dSSadaf Ebrahimi 1: a
1468*22dc650dSSadaf Ebrahimi    aaaz
1469*22dc650dSSadaf Ebrahimi 0: aaaz
1470*22dc650dSSadaf Ebrahimi 1: aaa
1471*22dc650dSSadaf Ebrahimi 2: aa
1472*22dc650dSSadaf Ebrahimi 3: a
1473*22dc650dSSadaf Ebrahimi    a
1474*22dc650dSSadaf Ebrahimi 0: a
1475*22dc650dSSadaf Ebrahimi    aa
1476*22dc650dSSadaf Ebrahimi 0: aa
1477*22dc650dSSadaf Ebrahimi 1: a
1478*22dc650dSSadaf Ebrahimi    aaaa
1479*22dc650dSSadaf Ebrahimi 0: aaaa
1480*22dc650dSSadaf Ebrahimi 1: aaa
1481*22dc650dSSadaf Ebrahimi 2: aa
1482*22dc650dSSadaf Ebrahimi 3: a
1483*22dc650dSSadaf Ebrahimi    a+
1484*22dc650dSSadaf Ebrahimi 0: a
1485*22dc650dSSadaf Ebrahimi    aa+
1486*22dc650dSSadaf Ebrahimi 0: aa
1487*22dc650dSSadaf Ebrahimi 1: a
1488*22dc650dSSadaf Ebrahimi
1489*22dc650dSSadaf Ebrahimi/^a+\w/
1490*22dc650dSSadaf Ebrahimi    az
1491*22dc650dSSadaf Ebrahimi 0: az
1492*22dc650dSSadaf Ebrahimi    aaaz
1493*22dc650dSSadaf Ebrahimi 0: aaaz
1494*22dc650dSSadaf Ebrahimi 1: aaa
1495*22dc650dSSadaf Ebrahimi 2: aa
1496*22dc650dSSadaf Ebrahimi    aa
1497*22dc650dSSadaf Ebrahimi 0: aa
1498*22dc650dSSadaf Ebrahimi    aaaa
1499*22dc650dSSadaf Ebrahimi 0: aaaa
1500*22dc650dSSadaf Ebrahimi 1: aaa
1501*22dc650dSSadaf Ebrahimi 2: aa
1502*22dc650dSSadaf Ebrahimi    aa+
1503*22dc650dSSadaf Ebrahimi 0: aa
1504*22dc650dSSadaf Ebrahimi
1505*22dc650dSSadaf Ebrahimi/^a+?\w/
1506*22dc650dSSadaf Ebrahimi    az
1507*22dc650dSSadaf Ebrahimi 0: az
1508*22dc650dSSadaf Ebrahimi    aaaz
1509*22dc650dSSadaf Ebrahimi 0: aaaz
1510*22dc650dSSadaf Ebrahimi 1: aaa
1511*22dc650dSSadaf Ebrahimi 2: aa
1512*22dc650dSSadaf Ebrahimi    aa
1513*22dc650dSSadaf Ebrahimi 0: aa
1514*22dc650dSSadaf Ebrahimi    aaaa
1515*22dc650dSSadaf Ebrahimi 0: aaaa
1516*22dc650dSSadaf Ebrahimi 1: aaa
1517*22dc650dSSadaf Ebrahimi 2: aa
1518*22dc650dSSadaf Ebrahimi    aa+
1519*22dc650dSSadaf Ebrahimi 0: aa
1520*22dc650dSSadaf Ebrahimi
1521*22dc650dSSadaf Ebrahimi/^\d{8}\w{2,}/
1522*22dc650dSSadaf Ebrahimi    1234567890
1523*22dc650dSSadaf Ebrahimi 0: 1234567890
1524*22dc650dSSadaf Ebrahimi    12345678ab
1525*22dc650dSSadaf Ebrahimi 0: 12345678ab
1526*22dc650dSSadaf Ebrahimi    12345678__
1527*22dc650dSSadaf Ebrahimi 0: 12345678__
1528*22dc650dSSadaf Ebrahimi\= Expect no match
1529*22dc650dSSadaf Ebrahimi    1234567
1530*22dc650dSSadaf EbrahimiNo match
1531*22dc650dSSadaf Ebrahimi
1532*22dc650dSSadaf Ebrahimi/^[aeiou\d]{4,5}$/
1533*22dc650dSSadaf Ebrahimi    uoie
1534*22dc650dSSadaf Ebrahimi 0: uoie
1535*22dc650dSSadaf Ebrahimi    1234
1536*22dc650dSSadaf Ebrahimi 0: 1234
1537*22dc650dSSadaf Ebrahimi    12345
1538*22dc650dSSadaf Ebrahimi 0: 12345
1539*22dc650dSSadaf Ebrahimi    aaaaa
1540*22dc650dSSadaf Ebrahimi 0: aaaaa
1541*22dc650dSSadaf Ebrahimi\= Expect no match
1542*22dc650dSSadaf Ebrahimi    123456
1543*22dc650dSSadaf EbrahimiNo match
1544*22dc650dSSadaf Ebrahimi
1545*22dc650dSSadaf Ebrahimi/^[aeiou\d]{4,5}?/
1546*22dc650dSSadaf Ebrahimi    uoie
1547*22dc650dSSadaf Ebrahimi 0: uoie
1548*22dc650dSSadaf Ebrahimi    1234
1549*22dc650dSSadaf Ebrahimi 0: 1234
1550*22dc650dSSadaf Ebrahimi    12345
1551*22dc650dSSadaf Ebrahimi 0: 12345
1552*22dc650dSSadaf Ebrahimi 1: 1234
1553*22dc650dSSadaf Ebrahimi    aaaaa
1554*22dc650dSSadaf Ebrahimi 0: aaaaa
1555*22dc650dSSadaf Ebrahimi 1: aaaa
1556*22dc650dSSadaf Ebrahimi    123456
1557*22dc650dSSadaf Ebrahimi 0: 12345
1558*22dc650dSSadaf Ebrahimi 1: 1234
1559*22dc650dSSadaf Ebrahimi
1560*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]/
1561*22dc650dSSadaf Ebrahimi    From abcd  Mon Sep 01 12:33:02 1997
1562*22dc650dSSadaf Ebrahimi 0: From abcd  Mon Sep 01 12:33
1563*22dc650dSSadaf Ebrahimi
1564*22dc650dSSadaf Ebrahimi/^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
1565*22dc650dSSadaf Ebrahimi    From abcd  Mon Sep 01 12:33:02 1997
1566*22dc650dSSadaf Ebrahimi 0: From abcd  Mon Sep 01 12:33
1567*22dc650dSSadaf Ebrahimi    From abcd  Mon Sep  1 12:33:02 1997
1568*22dc650dSSadaf Ebrahimi 0: From abcd  Mon Sep  1 12:33
1569*22dc650dSSadaf Ebrahimi\= Expect no match
1570*22dc650dSSadaf Ebrahimi    From abcd  Sep 01 12:33:02 1997
1571*22dc650dSSadaf EbrahimiNo match
1572*22dc650dSSadaf Ebrahimi
1573*22dc650dSSadaf Ebrahimi/^12.34/s
1574*22dc650dSSadaf Ebrahimi    12\n34
1575*22dc650dSSadaf Ebrahimi 0: 12\x0a34
1576*22dc650dSSadaf Ebrahimi    12\r34
1577*22dc650dSSadaf Ebrahimi 0: 12\x0d34
1578*22dc650dSSadaf Ebrahimi
1579*22dc650dSSadaf Ebrahimi/\w+(?=\t)/
1580*22dc650dSSadaf Ebrahimi    the quick brown\t fox
1581*22dc650dSSadaf Ebrahimi 0: brown
1582*22dc650dSSadaf Ebrahimi
1583*22dc650dSSadaf Ebrahimi/foo(?!bar)(.*)/
1584*22dc650dSSadaf Ebrahimi    foobar is foolish see?
1585*22dc650dSSadaf Ebrahimi 0: foolish see?
1586*22dc650dSSadaf Ebrahimi
1587*22dc650dSSadaf Ebrahimi/(?:(?!foo)...|^.{0,2})bar(.*)/
1588*22dc650dSSadaf Ebrahimi    foobar crowbar etc
1589*22dc650dSSadaf Ebrahimi 0: rowbar etc
1590*22dc650dSSadaf Ebrahimi    barrel
1591*22dc650dSSadaf Ebrahimi 0: barrel
1592*22dc650dSSadaf Ebrahimi    2barrel
1593*22dc650dSSadaf Ebrahimi 0: 2barrel
1594*22dc650dSSadaf Ebrahimi    A barrel
1595*22dc650dSSadaf Ebrahimi 0: A barrel
1596*22dc650dSSadaf Ebrahimi
1597*22dc650dSSadaf Ebrahimi/^(\D*)(?=\d)(?!123)/
1598*22dc650dSSadaf Ebrahimi    abc456
1599*22dc650dSSadaf Ebrahimi 0: abc
1600*22dc650dSSadaf Ebrahimi\= Expect no match
1601*22dc650dSSadaf Ebrahimi    abc123
1602*22dc650dSSadaf EbrahimiNo match
1603*22dc650dSSadaf Ebrahimi
1604*22dc650dSSadaf Ebrahimi/^1234(?# test newlines
1605*22dc650dSSadaf Ebrahimi  inside)/
1606*22dc650dSSadaf Ebrahimi    1234
1607*22dc650dSSadaf Ebrahimi 0: 1234
1608*22dc650dSSadaf Ebrahimi
1609*22dc650dSSadaf Ebrahimi/^1234 #comment in extended re
1610*22dc650dSSadaf Ebrahimi  /x
1611*22dc650dSSadaf Ebrahimi    1234
1612*22dc650dSSadaf Ebrahimi 0: 1234
1613*22dc650dSSadaf Ebrahimi
1614*22dc650dSSadaf Ebrahimi/#rhubarb
1615*22dc650dSSadaf Ebrahimi  abcd/x
1616*22dc650dSSadaf Ebrahimi    abcd
1617*22dc650dSSadaf Ebrahimi 0: abcd
1618*22dc650dSSadaf Ebrahimi
1619*22dc650dSSadaf Ebrahimi/^abcd#rhubarb/x
1620*22dc650dSSadaf Ebrahimi    abcd
1621*22dc650dSSadaf Ebrahimi 0: abcd
1622*22dc650dSSadaf Ebrahimi
1623*22dc650dSSadaf Ebrahimi/(?!^)abc/
1624*22dc650dSSadaf Ebrahimi    the abc
1625*22dc650dSSadaf Ebrahimi 0: abc
1626*22dc650dSSadaf Ebrahimi\= Expect no match
1627*22dc650dSSadaf Ebrahimi    abc
1628*22dc650dSSadaf EbrahimiNo match
1629*22dc650dSSadaf Ebrahimi
1630*22dc650dSSadaf Ebrahimi/(?=^)abc/
1631*22dc650dSSadaf Ebrahimi    abc
1632*22dc650dSSadaf Ebrahimi 0: abc
1633*22dc650dSSadaf Ebrahimi\= Expect no match
1634*22dc650dSSadaf Ebrahimi    the abc
1635*22dc650dSSadaf EbrahimiNo match
1636*22dc650dSSadaf Ebrahimi
1637*22dc650dSSadaf Ebrahimi/^[ab]{1,3}(ab*|b)/no_auto_possess
1638*22dc650dSSadaf Ebrahimi    aabbbbb
1639*22dc650dSSadaf Ebrahimi 0: aabbbbb
1640*22dc650dSSadaf Ebrahimi 1: aabbbb
1641*22dc650dSSadaf Ebrahimi 2: aabbb
1642*22dc650dSSadaf Ebrahimi 3: aabb
1643*22dc650dSSadaf Ebrahimi 4: aab
1644*22dc650dSSadaf Ebrahimi 5: aa
1645*22dc650dSSadaf Ebrahimi
1646*22dc650dSSadaf Ebrahimi/^[ab]{1,3}?(ab*|b)/no_auto_possess
1647*22dc650dSSadaf Ebrahimi    aabbbbb
1648*22dc650dSSadaf Ebrahimi 0: aabbbbb
1649*22dc650dSSadaf Ebrahimi 1: aabbbb
1650*22dc650dSSadaf Ebrahimi 2: aabbb
1651*22dc650dSSadaf Ebrahimi 3: aabb
1652*22dc650dSSadaf Ebrahimi 4: aab
1653*22dc650dSSadaf Ebrahimi 5: aa
1654*22dc650dSSadaf Ebrahimi
1655*22dc650dSSadaf Ebrahimi/^[ab]{1,3}?(ab*?|b)/no_auto_possess
1656*22dc650dSSadaf Ebrahimi    aabbbbb
1657*22dc650dSSadaf Ebrahimi 0: aabbbbb
1658*22dc650dSSadaf Ebrahimi 1: aabbbb
1659*22dc650dSSadaf Ebrahimi 2: aabbb
1660*22dc650dSSadaf Ebrahimi 3: aabb
1661*22dc650dSSadaf Ebrahimi 4: aab
1662*22dc650dSSadaf Ebrahimi 5: aa
1663*22dc650dSSadaf Ebrahimi
1664*22dc650dSSadaf Ebrahimi/^[ab]{1,3}(ab*?|b)/no_auto_possess
1665*22dc650dSSadaf Ebrahimi    aabbbbb
1666*22dc650dSSadaf Ebrahimi 0: aabbbbb
1667*22dc650dSSadaf Ebrahimi 1: aabbbb
1668*22dc650dSSadaf Ebrahimi 2: aabbb
1669*22dc650dSSadaf Ebrahimi 3: aabb
1670*22dc650dSSadaf Ebrahimi 4: aab
1671*22dc650dSSadaf Ebrahimi 5: aa
1672*22dc650dSSadaf Ebrahimi
1673*22dc650dSSadaf Ebrahimi/  (?: [\040\t] |  \(
1674*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1675*22dc650dSSadaf Ebrahimi\)  )*                          # optional leading comment
1676*22dc650dSSadaf Ebrahimi(?:    (?:
1677*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1678*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1679*22dc650dSSadaf Ebrahimi|
1680*22dc650dSSadaf Ebrahimi" (?:                      # opening quote...
1681*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
1682*22dc650dSSadaf Ebrahimi|                     #    or
1683*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff]           #   Escaped something (something != CR)
1684*22dc650dSSadaf Ebrahimi)* "  # closing quote
1685*22dc650dSSadaf Ebrahimi)                    # initial word
1686*22dc650dSSadaf Ebrahimi(?:  (?: [\040\t] |  \(
1687*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1688*22dc650dSSadaf Ebrahimi\)  )*  \.  (?: [\040\t] |  \(
1689*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1690*22dc650dSSadaf Ebrahimi\)  )*   (?:
1691*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1692*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1693*22dc650dSSadaf Ebrahimi|
1694*22dc650dSSadaf Ebrahimi" (?:                      # opening quote...
1695*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
1696*22dc650dSSadaf Ebrahimi|                     #    or
1697*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff]           #   Escaped something (something != CR)
1698*22dc650dSSadaf Ebrahimi)* "  # closing quote
1699*22dc650dSSadaf Ebrahimi)  )* # further okay, if led by a period
1700*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1701*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1702*22dc650dSSadaf Ebrahimi\)  )*  @  (?: [\040\t] |  \(
1703*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1704*22dc650dSSadaf Ebrahimi\)  )*    (?:
1705*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1706*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1707*22dc650dSSadaf Ebrahimi|   \[                         # [
1708*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
1709*22dc650dSSadaf Ebrahimi\]                        #           ]
1710*22dc650dSSadaf Ebrahimi)                           # initial subdomain
1711*22dc650dSSadaf Ebrahimi(?:                                  #
1712*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1713*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1714*22dc650dSSadaf Ebrahimi\)  )*  \.                        # if led by a period...
1715*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1716*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1717*22dc650dSSadaf Ebrahimi\)  )*   (?:
1718*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1719*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1720*22dc650dSSadaf Ebrahimi|   \[                         # [
1721*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
1722*22dc650dSSadaf Ebrahimi\]                        #           ]
1723*22dc650dSSadaf Ebrahimi)                     #   ...further okay
1724*22dc650dSSadaf Ebrahimi)*
1725*22dc650dSSadaf Ebrahimi# address
1726*22dc650dSSadaf Ebrahimi|                     #  or
1727*22dc650dSSadaf Ebrahimi(?:
1728*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1729*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1730*22dc650dSSadaf Ebrahimi|
1731*22dc650dSSadaf Ebrahimi" (?:                      # opening quote...
1732*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
1733*22dc650dSSadaf Ebrahimi|                     #    or
1734*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff]           #   Escaped something (something != CR)
1735*22dc650dSSadaf Ebrahimi)* "  # closing quote
1736*22dc650dSSadaf Ebrahimi)             # one word, optionally followed by....
1737*22dc650dSSadaf Ebrahimi(?:
1738*22dc650dSSadaf Ebrahimi[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
1739*22dc650dSSadaf Ebrahimi\(
1740*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1741*22dc650dSSadaf Ebrahimi\)       |  # comments, or...
1742*22dc650dSSadaf Ebrahimi
1743*22dc650dSSadaf Ebrahimi" (?:                      # opening quote...
1744*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
1745*22dc650dSSadaf Ebrahimi|                     #    or
1746*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff]           #   Escaped something (something != CR)
1747*22dc650dSSadaf Ebrahimi)* "  # closing quote
1748*22dc650dSSadaf Ebrahimi# quoted strings
1749*22dc650dSSadaf Ebrahimi)*
1750*22dc650dSSadaf Ebrahimi<  (?: [\040\t] |  \(
1751*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1752*22dc650dSSadaf Ebrahimi\)  )*                     # leading <
1753*22dc650dSSadaf Ebrahimi(?:  @  (?: [\040\t] |  \(
1754*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1755*22dc650dSSadaf Ebrahimi\)  )*    (?:
1756*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1757*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1758*22dc650dSSadaf Ebrahimi|   \[                         # [
1759*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
1760*22dc650dSSadaf Ebrahimi\]                        #           ]
1761*22dc650dSSadaf Ebrahimi)                           # initial subdomain
1762*22dc650dSSadaf Ebrahimi(?:                                  #
1763*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1764*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1765*22dc650dSSadaf Ebrahimi\)  )*  \.                        # if led by a period...
1766*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1767*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1768*22dc650dSSadaf Ebrahimi\)  )*   (?:
1769*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1770*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1771*22dc650dSSadaf Ebrahimi|   \[                         # [
1772*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
1773*22dc650dSSadaf Ebrahimi\]                        #           ]
1774*22dc650dSSadaf Ebrahimi)                     #   ...further okay
1775*22dc650dSSadaf Ebrahimi)*
1776*22dc650dSSadaf Ebrahimi
1777*22dc650dSSadaf Ebrahimi(?:  (?: [\040\t] |  \(
1778*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1779*22dc650dSSadaf Ebrahimi\)  )*  ,  (?: [\040\t] |  \(
1780*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1781*22dc650dSSadaf Ebrahimi\)  )*  @  (?: [\040\t] |  \(
1782*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1783*22dc650dSSadaf Ebrahimi\)  )*    (?:
1784*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1785*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1786*22dc650dSSadaf Ebrahimi|   \[                         # [
1787*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
1788*22dc650dSSadaf Ebrahimi\]                        #           ]
1789*22dc650dSSadaf Ebrahimi)                           # initial subdomain
1790*22dc650dSSadaf Ebrahimi(?:                                  #
1791*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1792*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1793*22dc650dSSadaf Ebrahimi\)  )*  \.                        # if led by a period...
1794*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1795*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1796*22dc650dSSadaf Ebrahimi\)  )*   (?:
1797*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1798*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1799*22dc650dSSadaf Ebrahimi|   \[                         # [
1800*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
1801*22dc650dSSadaf Ebrahimi\]                        #           ]
1802*22dc650dSSadaf Ebrahimi)                     #   ...further okay
1803*22dc650dSSadaf Ebrahimi)*
1804*22dc650dSSadaf Ebrahimi)* # further okay, if led by comma
1805*22dc650dSSadaf Ebrahimi:                                # closing colon
1806*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1807*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1808*22dc650dSSadaf Ebrahimi\)  )*  )? #       optional route
1809*22dc650dSSadaf Ebrahimi(?:
1810*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1811*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1812*22dc650dSSadaf Ebrahimi|
1813*22dc650dSSadaf Ebrahimi" (?:                      # opening quote...
1814*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
1815*22dc650dSSadaf Ebrahimi|                     #    or
1816*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff]           #   Escaped something (something != CR)
1817*22dc650dSSadaf Ebrahimi)* "  # closing quote
1818*22dc650dSSadaf Ebrahimi)                    # initial word
1819*22dc650dSSadaf Ebrahimi(?:  (?: [\040\t] |  \(
1820*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1821*22dc650dSSadaf Ebrahimi\)  )*  \.  (?: [\040\t] |  \(
1822*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1823*22dc650dSSadaf Ebrahimi\)  )*   (?:
1824*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1825*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1826*22dc650dSSadaf Ebrahimi|
1827*22dc650dSSadaf Ebrahimi" (?:                      # opening quote...
1828*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
1829*22dc650dSSadaf Ebrahimi|                     #    or
1830*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff]           #   Escaped something (something != CR)
1831*22dc650dSSadaf Ebrahimi)* "  # closing quote
1832*22dc650dSSadaf Ebrahimi)  )* # further okay, if led by a period
1833*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1834*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1835*22dc650dSSadaf Ebrahimi\)  )*  @  (?: [\040\t] |  \(
1836*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1837*22dc650dSSadaf Ebrahimi\)  )*    (?:
1838*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1839*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1840*22dc650dSSadaf Ebrahimi|   \[                         # [
1841*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
1842*22dc650dSSadaf Ebrahimi\]                        #           ]
1843*22dc650dSSadaf Ebrahimi)                           # initial subdomain
1844*22dc650dSSadaf Ebrahimi(?:                                  #
1845*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1846*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1847*22dc650dSSadaf Ebrahimi\)  )*  \.                        # if led by a period...
1848*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1849*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1850*22dc650dSSadaf Ebrahimi\)  )*   (?:
1851*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1852*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1853*22dc650dSSadaf Ebrahimi|   \[                         # [
1854*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
1855*22dc650dSSadaf Ebrahimi\]                        #           ]
1856*22dc650dSSadaf Ebrahimi)                     #   ...further okay
1857*22dc650dSSadaf Ebrahimi)*
1858*22dc650dSSadaf Ebrahimi#       address spec
1859*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1860*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1861*22dc650dSSadaf Ebrahimi\)  )*  > #                  trailing >
1862*22dc650dSSadaf Ebrahimi# name and address
1863*22dc650dSSadaf Ebrahimi)  (?: [\040\t] |  \(
1864*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1865*22dc650dSSadaf Ebrahimi\)  )*                       # optional trailing comment
1866*22dc650dSSadaf Ebrahimi/x
1867*22dc650dSSadaf Ebrahimi    Alan Other <user\@dom.ain>
1868*22dc650dSSadaf Ebrahimi 0: Alan Other <[email protected]>
1869*22dc650dSSadaf Ebrahimi    <user\@dom.ain>
1870*22dc650dSSadaf Ebrahimi 0: [email protected]
1871*22dc650dSSadaf Ebrahimi 1: user@dom
1872*22dc650dSSadaf Ebrahimi    user\@dom.ain
1873*22dc650dSSadaf Ebrahimi 0: [email protected]
1874*22dc650dSSadaf Ebrahimi 1: user@dom
1875*22dc650dSSadaf Ebrahimi    \"A. Other\" <user.1234\@dom.ain> (a comment)
1876*22dc650dSSadaf Ebrahimi 0: "A. Other" <[email protected]> (a comment)
1877*22dc650dSSadaf Ebrahimi 1: "A. Other" <[email protected]>
1878*22dc650dSSadaf Ebrahimi 2: "A. Other" <[email protected]>
1879*22dc650dSSadaf Ebrahimi    A. Other <user.1234\@dom.ain> (a comment)
1880*22dc650dSSadaf Ebrahimi 0:  Other <[email protected]> (a comment)
1881*22dc650dSSadaf Ebrahimi 1:  Other <[email protected]>
1882*22dc650dSSadaf Ebrahimi 2:  Other <[email protected]>
1883*22dc650dSSadaf Ebrahimi    \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
1884*22dc650dSSadaf Ebrahimi 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
1885*22dc650dSSadaf Ebrahimi 1: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re
1886*22dc650dSSadaf Ebrahimi    A missing angle <user\@some.where
1887*22dc650dSSadaf Ebrahimi 0: [email protected]
1888*22dc650dSSadaf Ebrahimi 1: user@some
1889*22dc650dSSadaf Ebrahimi\= Expect no match
1890*22dc650dSSadaf Ebrahimi    The quick brown fox
1891*22dc650dSSadaf EbrahimiNo match
1892*22dc650dSSadaf Ebrahimi
1893*22dc650dSSadaf Ebrahimi/[\040\t]*                    # Nab whitespace.
1894*22dc650dSSadaf Ebrahimi(?:
1895*22dc650dSSadaf Ebrahimi\(                              #  (
1896*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1897*22dc650dSSadaf Ebrahimi(?:                                 #       (
1898*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1899*22dc650dSSadaf Ebrahimi\(                            #  (
1900*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1901*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1902*22dc650dSSadaf Ebrahimi\)                           #                       )
1903*22dc650dSSadaf Ebrahimi)    #         special
1904*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1905*22dc650dSSadaf Ebrahimi)*                                  #            )*
1906*22dc650dSSadaf Ebrahimi\)                             #                )
1907*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1908*22dc650dSSadaf Ebrahimi# optional leading comment
1909*22dc650dSSadaf Ebrahimi(?:
1910*22dc650dSSadaf Ebrahimi(?:
1911*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1912*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1913*22dc650dSSadaf Ebrahimi# Atom
1914*22dc650dSSadaf Ebrahimi|                       #  or
1915*22dc650dSSadaf Ebrahimi"                                     # "
1916*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] *                            #   normal
1917*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
1918*22dc650dSSadaf Ebrahimi"                                     #        "
1919*22dc650dSSadaf Ebrahimi# Quoted string
1920*22dc650dSSadaf Ebrahimi)
1921*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1922*22dc650dSSadaf Ebrahimi(?:
1923*22dc650dSSadaf Ebrahimi\(                              #  (
1924*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1925*22dc650dSSadaf Ebrahimi(?:                                 #       (
1926*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1927*22dc650dSSadaf Ebrahimi\(                            #  (
1928*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1929*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1930*22dc650dSSadaf Ebrahimi\)                           #                       )
1931*22dc650dSSadaf Ebrahimi)    #         special
1932*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1933*22dc650dSSadaf Ebrahimi)*                                  #            )*
1934*22dc650dSSadaf Ebrahimi\)                             #                )
1935*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1936*22dc650dSSadaf Ebrahimi(?:
1937*22dc650dSSadaf Ebrahimi\.
1938*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1939*22dc650dSSadaf Ebrahimi(?:
1940*22dc650dSSadaf Ebrahimi\(                              #  (
1941*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1942*22dc650dSSadaf Ebrahimi(?:                                 #       (
1943*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1944*22dc650dSSadaf Ebrahimi\(                            #  (
1945*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1946*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1947*22dc650dSSadaf Ebrahimi\)                           #                       )
1948*22dc650dSSadaf Ebrahimi)    #         special
1949*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1950*22dc650dSSadaf Ebrahimi)*                                  #            )*
1951*22dc650dSSadaf Ebrahimi\)                             #                )
1952*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1953*22dc650dSSadaf Ebrahimi(?:
1954*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1955*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1956*22dc650dSSadaf Ebrahimi# Atom
1957*22dc650dSSadaf Ebrahimi|                       #  or
1958*22dc650dSSadaf Ebrahimi"                                     # "
1959*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] *                            #   normal
1960*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
1961*22dc650dSSadaf Ebrahimi"                                     #        "
1962*22dc650dSSadaf Ebrahimi# Quoted string
1963*22dc650dSSadaf Ebrahimi)
1964*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1965*22dc650dSSadaf Ebrahimi(?:
1966*22dc650dSSadaf Ebrahimi\(                              #  (
1967*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1968*22dc650dSSadaf Ebrahimi(?:                                 #       (
1969*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1970*22dc650dSSadaf Ebrahimi\(                            #  (
1971*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1972*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1973*22dc650dSSadaf Ebrahimi\)                           #                       )
1974*22dc650dSSadaf Ebrahimi)    #         special
1975*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1976*22dc650dSSadaf Ebrahimi)*                                  #            )*
1977*22dc650dSSadaf Ebrahimi\)                             #                )
1978*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1979*22dc650dSSadaf Ebrahimi# additional words
1980*22dc650dSSadaf Ebrahimi)*
1981*22dc650dSSadaf Ebrahimi@
1982*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1983*22dc650dSSadaf Ebrahimi(?:
1984*22dc650dSSadaf Ebrahimi\(                              #  (
1985*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1986*22dc650dSSadaf Ebrahimi(?:                                 #       (
1987*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1988*22dc650dSSadaf Ebrahimi\(                            #  (
1989*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1990*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1991*22dc650dSSadaf Ebrahimi\)                           #                       )
1992*22dc650dSSadaf Ebrahimi)    #         special
1993*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1994*22dc650dSSadaf Ebrahimi)*                                  #            )*
1995*22dc650dSSadaf Ebrahimi\)                             #                )
1996*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1997*22dc650dSSadaf Ebrahimi(?:
1998*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1999*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2000*22dc650dSSadaf Ebrahimi|
2001*22dc650dSSadaf Ebrahimi\[                            # [
2002*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
2003*22dc650dSSadaf Ebrahimi\]                           #           ]
2004*22dc650dSSadaf Ebrahimi)
2005*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2006*22dc650dSSadaf Ebrahimi(?:
2007*22dc650dSSadaf Ebrahimi\(                              #  (
2008*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2009*22dc650dSSadaf Ebrahimi(?:                                 #       (
2010*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2011*22dc650dSSadaf Ebrahimi\(                            #  (
2012*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2013*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2014*22dc650dSSadaf Ebrahimi\)                           #                       )
2015*22dc650dSSadaf Ebrahimi)    #         special
2016*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2017*22dc650dSSadaf Ebrahimi)*                                  #            )*
2018*22dc650dSSadaf Ebrahimi\)                             #                )
2019*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2020*22dc650dSSadaf Ebrahimi# optional trailing comments
2021*22dc650dSSadaf Ebrahimi(?:
2022*22dc650dSSadaf Ebrahimi\.
2023*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2024*22dc650dSSadaf Ebrahimi(?:
2025*22dc650dSSadaf Ebrahimi\(                              #  (
2026*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2027*22dc650dSSadaf Ebrahimi(?:                                 #       (
2028*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2029*22dc650dSSadaf Ebrahimi\(                            #  (
2030*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2031*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2032*22dc650dSSadaf Ebrahimi\)                           #                       )
2033*22dc650dSSadaf Ebrahimi)    #         special
2034*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2035*22dc650dSSadaf Ebrahimi)*                                  #            )*
2036*22dc650dSSadaf Ebrahimi\)                             #                )
2037*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2038*22dc650dSSadaf Ebrahimi(?:
2039*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2040*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2041*22dc650dSSadaf Ebrahimi|
2042*22dc650dSSadaf Ebrahimi\[                            # [
2043*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
2044*22dc650dSSadaf Ebrahimi\]                           #           ]
2045*22dc650dSSadaf Ebrahimi)
2046*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2047*22dc650dSSadaf Ebrahimi(?:
2048*22dc650dSSadaf Ebrahimi\(                              #  (
2049*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2050*22dc650dSSadaf Ebrahimi(?:                                 #       (
2051*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2052*22dc650dSSadaf Ebrahimi\(                            #  (
2053*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2054*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2055*22dc650dSSadaf Ebrahimi\)                           #                       )
2056*22dc650dSSadaf Ebrahimi)    #         special
2057*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2058*22dc650dSSadaf Ebrahimi)*                                  #            )*
2059*22dc650dSSadaf Ebrahimi\)                             #                )
2060*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2061*22dc650dSSadaf Ebrahimi# optional trailing comments
2062*22dc650dSSadaf Ebrahimi)*
2063*22dc650dSSadaf Ebrahimi# address
2064*22dc650dSSadaf Ebrahimi|                             #  or
2065*22dc650dSSadaf Ebrahimi(?:
2066*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2067*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2068*22dc650dSSadaf Ebrahimi# Atom
2069*22dc650dSSadaf Ebrahimi|                       #  or
2070*22dc650dSSadaf Ebrahimi"                                     # "
2071*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] *                            #   normal
2072*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
2073*22dc650dSSadaf Ebrahimi"                                     #        "
2074*22dc650dSSadaf Ebrahimi# Quoted string
2075*22dc650dSSadaf Ebrahimi)
2076*22dc650dSSadaf Ebrahimi# leading word
2077*22dc650dSSadaf Ebrahimi[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *               # "normal" atoms and or spaces
2078*22dc650dSSadaf Ebrahimi(?:
2079*22dc650dSSadaf Ebrahimi(?:
2080*22dc650dSSadaf Ebrahimi\(                              #  (
2081*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2082*22dc650dSSadaf Ebrahimi(?:                                 #       (
2083*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2084*22dc650dSSadaf Ebrahimi\(                            #  (
2085*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2086*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2087*22dc650dSSadaf Ebrahimi\)                           #                       )
2088*22dc650dSSadaf Ebrahimi)    #         special
2089*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2090*22dc650dSSadaf Ebrahimi)*                                  #            )*
2091*22dc650dSSadaf Ebrahimi\)                             #                )
2092*22dc650dSSadaf Ebrahimi|
2093*22dc650dSSadaf Ebrahimi"                                     # "
2094*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] *                            #   normal
2095*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
2096*22dc650dSSadaf Ebrahimi"                                     #        "
2097*22dc650dSSadaf Ebrahimi) # "special" comment or quoted string
2098*22dc650dSSadaf Ebrahimi[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *            #  more "normal"
2099*22dc650dSSadaf Ebrahimi)*
2100*22dc650dSSadaf Ebrahimi<
2101*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2102*22dc650dSSadaf Ebrahimi(?:
2103*22dc650dSSadaf Ebrahimi\(                              #  (
2104*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2105*22dc650dSSadaf Ebrahimi(?:                                 #       (
2106*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2107*22dc650dSSadaf Ebrahimi\(                            #  (
2108*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2109*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2110*22dc650dSSadaf Ebrahimi\)                           #                       )
2111*22dc650dSSadaf Ebrahimi)    #         special
2112*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2113*22dc650dSSadaf Ebrahimi)*                                  #            )*
2114*22dc650dSSadaf Ebrahimi\)                             #                )
2115*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2116*22dc650dSSadaf Ebrahimi# <
2117*22dc650dSSadaf Ebrahimi(?:
2118*22dc650dSSadaf Ebrahimi@
2119*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2120*22dc650dSSadaf Ebrahimi(?:
2121*22dc650dSSadaf Ebrahimi\(                              #  (
2122*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2123*22dc650dSSadaf Ebrahimi(?:                                 #       (
2124*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2125*22dc650dSSadaf Ebrahimi\(                            #  (
2126*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2127*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2128*22dc650dSSadaf Ebrahimi\)                           #                       )
2129*22dc650dSSadaf Ebrahimi)    #         special
2130*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2131*22dc650dSSadaf Ebrahimi)*                                  #            )*
2132*22dc650dSSadaf Ebrahimi\)                             #                )
2133*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2134*22dc650dSSadaf Ebrahimi(?:
2135*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2136*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2137*22dc650dSSadaf Ebrahimi|
2138*22dc650dSSadaf Ebrahimi\[                            # [
2139*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
2140*22dc650dSSadaf Ebrahimi\]                           #           ]
2141*22dc650dSSadaf Ebrahimi)
2142*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2143*22dc650dSSadaf Ebrahimi(?:
2144*22dc650dSSadaf Ebrahimi\(                              #  (
2145*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2146*22dc650dSSadaf Ebrahimi(?:                                 #       (
2147*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2148*22dc650dSSadaf Ebrahimi\(                            #  (
2149*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2150*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2151*22dc650dSSadaf Ebrahimi\)                           #                       )
2152*22dc650dSSadaf Ebrahimi)    #         special
2153*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2154*22dc650dSSadaf Ebrahimi)*                                  #            )*
2155*22dc650dSSadaf Ebrahimi\)                             #                )
2156*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2157*22dc650dSSadaf Ebrahimi# optional trailing comments
2158*22dc650dSSadaf Ebrahimi(?:
2159*22dc650dSSadaf Ebrahimi\.
2160*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2161*22dc650dSSadaf Ebrahimi(?:
2162*22dc650dSSadaf Ebrahimi\(                              #  (
2163*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2164*22dc650dSSadaf Ebrahimi(?:                                 #       (
2165*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2166*22dc650dSSadaf Ebrahimi\(                            #  (
2167*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2168*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2169*22dc650dSSadaf Ebrahimi\)                           #                       )
2170*22dc650dSSadaf Ebrahimi)    #         special
2171*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2172*22dc650dSSadaf Ebrahimi)*                                  #            )*
2173*22dc650dSSadaf Ebrahimi\)                             #                )
2174*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2175*22dc650dSSadaf Ebrahimi(?:
2176*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2177*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2178*22dc650dSSadaf Ebrahimi|
2179*22dc650dSSadaf Ebrahimi\[                            # [
2180*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
2181*22dc650dSSadaf Ebrahimi\]                           #           ]
2182*22dc650dSSadaf Ebrahimi)
2183*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2184*22dc650dSSadaf Ebrahimi(?:
2185*22dc650dSSadaf Ebrahimi\(                              #  (
2186*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2187*22dc650dSSadaf Ebrahimi(?:                                 #       (
2188*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2189*22dc650dSSadaf Ebrahimi\(                            #  (
2190*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2191*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2192*22dc650dSSadaf Ebrahimi\)                           #                       )
2193*22dc650dSSadaf Ebrahimi)    #         special
2194*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2195*22dc650dSSadaf Ebrahimi)*                                  #            )*
2196*22dc650dSSadaf Ebrahimi\)                             #                )
2197*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2198*22dc650dSSadaf Ebrahimi# optional trailing comments
2199*22dc650dSSadaf Ebrahimi)*
2200*22dc650dSSadaf Ebrahimi(?: ,
2201*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2202*22dc650dSSadaf Ebrahimi(?:
2203*22dc650dSSadaf Ebrahimi\(                              #  (
2204*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2205*22dc650dSSadaf Ebrahimi(?:                                 #       (
2206*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2207*22dc650dSSadaf Ebrahimi\(                            #  (
2208*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2209*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2210*22dc650dSSadaf Ebrahimi\)                           #                       )
2211*22dc650dSSadaf Ebrahimi)    #         special
2212*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2213*22dc650dSSadaf Ebrahimi)*                                  #            )*
2214*22dc650dSSadaf Ebrahimi\)                             #                )
2215*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2216*22dc650dSSadaf Ebrahimi@
2217*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2218*22dc650dSSadaf Ebrahimi(?:
2219*22dc650dSSadaf Ebrahimi\(                              #  (
2220*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2221*22dc650dSSadaf Ebrahimi(?:                                 #       (
2222*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2223*22dc650dSSadaf Ebrahimi\(                            #  (
2224*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2225*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2226*22dc650dSSadaf Ebrahimi\)                           #                       )
2227*22dc650dSSadaf Ebrahimi)    #         special
2228*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2229*22dc650dSSadaf Ebrahimi)*                                  #            )*
2230*22dc650dSSadaf Ebrahimi\)                             #                )
2231*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2232*22dc650dSSadaf Ebrahimi(?:
2233*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2234*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2235*22dc650dSSadaf Ebrahimi|
2236*22dc650dSSadaf Ebrahimi\[                            # [
2237*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
2238*22dc650dSSadaf Ebrahimi\]                           #           ]
2239*22dc650dSSadaf Ebrahimi)
2240*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2241*22dc650dSSadaf Ebrahimi(?:
2242*22dc650dSSadaf Ebrahimi\(                              #  (
2243*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2244*22dc650dSSadaf Ebrahimi(?:                                 #       (
2245*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2246*22dc650dSSadaf Ebrahimi\(                            #  (
2247*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2248*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2249*22dc650dSSadaf Ebrahimi\)                           #                       )
2250*22dc650dSSadaf Ebrahimi)    #         special
2251*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2252*22dc650dSSadaf Ebrahimi)*                                  #            )*
2253*22dc650dSSadaf Ebrahimi\)                             #                )
2254*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2255*22dc650dSSadaf Ebrahimi# optional trailing comments
2256*22dc650dSSadaf Ebrahimi(?:
2257*22dc650dSSadaf Ebrahimi\.
2258*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2259*22dc650dSSadaf Ebrahimi(?:
2260*22dc650dSSadaf Ebrahimi\(                              #  (
2261*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2262*22dc650dSSadaf Ebrahimi(?:                                 #       (
2263*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2264*22dc650dSSadaf Ebrahimi\(                            #  (
2265*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2266*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2267*22dc650dSSadaf Ebrahimi\)                           #                       )
2268*22dc650dSSadaf Ebrahimi)    #         special
2269*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2270*22dc650dSSadaf Ebrahimi)*                                  #            )*
2271*22dc650dSSadaf Ebrahimi\)                             #                )
2272*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2273*22dc650dSSadaf Ebrahimi(?:
2274*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2275*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2276*22dc650dSSadaf Ebrahimi|
2277*22dc650dSSadaf Ebrahimi\[                            # [
2278*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
2279*22dc650dSSadaf Ebrahimi\]                           #           ]
2280*22dc650dSSadaf Ebrahimi)
2281*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2282*22dc650dSSadaf Ebrahimi(?:
2283*22dc650dSSadaf Ebrahimi\(                              #  (
2284*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2285*22dc650dSSadaf Ebrahimi(?:                                 #       (
2286*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2287*22dc650dSSadaf Ebrahimi\(                            #  (
2288*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2289*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2290*22dc650dSSadaf Ebrahimi\)                           #                       )
2291*22dc650dSSadaf Ebrahimi)    #         special
2292*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2293*22dc650dSSadaf Ebrahimi)*                                  #            )*
2294*22dc650dSSadaf Ebrahimi\)                             #                )
2295*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2296*22dc650dSSadaf Ebrahimi# optional trailing comments
2297*22dc650dSSadaf Ebrahimi)*
2298*22dc650dSSadaf Ebrahimi)*  # additional domains
2299*22dc650dSSadaf Ebrahimi:
2300*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2301*22dc650dSSadaf Ebrahimi(?:
2302*22dc650dSSadaf Ebrahimi\(                              #  (
2303*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2304*22dc650dSSadaf Ebrahimi(?:                                 #       (
2305*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2306*22dc650dSSadaf Ebrahimi\(                            #  (
2307*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2308*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2309*22dc650dSSadaf Ebrahimi\)                           #                       )
2310*22dc650dSSadaf Ebrahimi)    #         special
2311*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2312*22dc650dSSadaf Ebrahimi)*                                  #            )*
2313*22dc650dSSadaf Ebrahimi\)                             #                )
2314*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2315*22dc650dSSadaf Ebrahimi# optional trailing comments
2316*22dc650dSSadaf Ebrahimi)?     #       optional route
2317*22dc650dSSadaf Ebrahimi(?:
2318*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2319*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2320*22dc650dSSadaf Ebrahimi# Atom
2321*22dc650dSSadaf Ebrahimi|                       #  or
2322*22dc650dSSadaf Ebrahimi"                                     # "
2323*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] *                            #   normal
2324*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
2325*22dc650dSSadaf Ebrahimi"                                     #        "
2326*22dc650dSSadaf Ebrahimi# Quoted string
2327*22dc650dSSadaf Ebrahimi)
2328*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2329*22dc650dSSadaf Ebrahimi(?:
2330*22dc650dSSadaf Ebrahimi\(                              #  (
2331*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2332*22dc650dSSadaf Ebrahimi(?:                                 #       (
2333*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2334*22dc650dSSadaf Ebrahimi\(                            #  (
2335*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2336*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2337*22dc650dSSadaf Ebrahimi\)                           #                       )
2338*22dc650dSSadaf Ebrahimi)    #         special
2339*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2340*22dc650dSSadaf Ebrahimi)*                                  #            )*
2341*22dc650dSSadaf Ebrahimi\)                             #                )
2342*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2343*22dc650dSSadaf Ebrahimi(?:
2344*22dc650dSSadaf Ebrahimi\.
2345*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2346*22dc650dSSadaf Ebrahimi(?:
2347*22dc650dSSadaf Ebrahimi\(                              #  (
2348*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2349*22dc650dSSadaf Ebrahimi(?:                                 #       (
2350*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2351*22dc650dSSadaf Ebrahimi\(                            #  (
2352*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2353*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2354*22dc650dSSadaf Ebrahimi\)                           #                       )
2355*22dc650dSSadaf Ebrahimi)    #         special
2356*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2357*22dc650dSSadaf Ebrahimi)*                                  #            )*
2358*22dc650dSSadaf Ebrahimi\)                             #                )
2359*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2360*22dc650dSSadaf Ebrahimi(?:
2361*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2362*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2363*22dc650dSSadaf Ebrahimi# Atom
2364*22dc650dSSadaf Ebrahimi|                       #  or
2365*22dc650dSSadaf Ebrahimi"                                     # "
2366*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] *                            #   normal
2367*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
2368*22dc650dSSadaf Ebrahimi"                                     #        "
2369*22dc650dSSadaf Ebrahimi# Quoted string
2370*22dc650dSSadaf Ebrahimi)
2371*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2372*22dc650dSSadaf Ebrahimi(?:
2373*22dc650dSSadaf Ebrahimi\(                              #  (
2374*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2375*22dc650dSSadaf Ebrahimi(?:                                 #       (
2376*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2377*22dc650dSSadaf Ebrahimi\(                            #  (
2378*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2379*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2380*22dc650dSSadaf Ebrahimi\)                           #                       )
2381*22dc650dSSadaf Ebrahimi)    #         special
2382*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2383*22dc650dSSadaf Ebrahimi)*                                  #            )*
2384*22dc650dSSadaf Ebrahimi\)                             #                )
2385*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2386*22dc650dSSadaf Ebrahimi# additional words
2387*22dc650dSSadaf Ebrahimi)*
2388*22dc650dSSadaf Ebrahimi@
2389*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2390*22dc650dSSadaf Ebrahimi(?:
2391*22dc650dSSadaf Ebrahimi\(                              #  (
2392*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2393*22dc650dSSadaf Ebrahimi(?:                                 #       (
2394*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2395*22dc650dSSadaf Ebrahimi\(                            #  (
2396*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2397*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2398*22dc650dSSadaf Ebrahimi\)                           #                       )
2399*22dc650dSSadaf Ebrahimi)    #         special
2400*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2401*22dc650dSSadaf Ebrahimi)*                                  #            )*
2402*22dc650dSSadaf Ebrahimi\)                             #                )
2403*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2404*22dc650dSSadaf Ebrahimi(?:
2405*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2406*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2407*22dc650dSSadaf Ebrahimi|
2408*22dc650dSSadaf Ebrahimi\[                            # [
2409*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
2410*22dc650dSSadaf Ebrahimi\]                           #           ]
2411*22dc650dSSadaf Ebrahimi)
2412*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2413*22dc650dSSadaf Ebrahimi(?:
2414*22dc650dSSadaf Ebrahimi\(                              #  (
2415*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2416*22dc650dSSadaf Ebrahimi(?:                                 #       (
2417*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2418*22dc650dSSadaf Ebrahimi\(                            #  (
2419*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2420*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2421*22dc650dSSadaf Ebrahimi\)                           #                       )
2422*22dc650dSSadaf Ebrahimi)    #         special
2423*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2424*22dc650dSSadaf Ebrahimi)*                                  #            )*
2425*22dc650dSSadaf Ebrahimi\)                             #                )
2426*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2427*22dc650dSSadaf Ebrahimi# optional trailing comments
2428*22dc650dSSadaf Ebrahimi(?:
2429*22dc650dSSadaf Ebrahimi\.
2430*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2431*22dc650dSSadaf Ebrahimi(?:
2432*22dc650dSSadaf Ebrahimi\(                              #  (
2433*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2434*22dc650dSSadaf Ebrahimi(?:                                 #       (
2435*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2436*22dc650dSSadaf Ebrahimi\(                            #  (
2437*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2438*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2439*22dc650dSSadaf Ebrahimi\)                           #                       )
2440*22dc650dSSadaf Ebrahimi)    #         special
2441*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2442*22dc650dSSadaf Ebrahimi)*                                  #            )*
2443*22dc650dSSadaf Ebrahimi\)                             #                )
2444*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2445*22dc650dSSadaf Ebrahimi(?:
2446*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2447*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2448*22dc650dSSadaf Ebrahimi|
2449*22dc650dSSadaf Ebrahimi\[                            # [
2450*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
2451*22dc650dSSadaf Ebrahimi\]                           #           ]
2452*22dc650dSSadaf Ebrahimi)
2453*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
2454*22dc650dSSadaf Ebrahimi(?:
2455*22dc650dSSadaf Ebrahimi\(                              #  (
2456*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
2457*22dc650dSSadaf Ebrahimi(?:                                 #       (
2458*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
2459*22dc650dSSadaf Ebrahimi\(                            #  (
2460*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
2461*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
2462*22dc650dSSadaf Ebrahimi\)                           #                       )
2463*22dc650dSSadaf Ebrahimi)    #         special
2464*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
2465*22dc650dSSadaf Ebrahimi)*                                  #            )*
2466*22dc650dSSadaf Ebrahimi\)                             #                )
2467*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
2468*22dc650dSSadaf Ebrahimi# optional trailing comments
2469*22dc650dSSadaf Ebrahimi)*
2470*22dc650dSSadaf Ebrahimi#       address spec
2471*22dc650dSSadaf Ebrahimi>                    #                 >
2472*22dc650dSSadaf Ebrahimi# name and address
2473*22dc650dSSadaf Ebrahimi)
2474*22dc650dSSadaf Ebrahimi/x
2475*22dc650dSSadaf Ebrahimi    Alan Other <user\@dom.ain>
2476*22dc650dSSadaf Ebrahimi 0: Alan Other <[email protected]>
2477*22dc650dSSadaf Ebrahimi    <user\@dom.ain>
2478*22dc650dSSadaf Ebrahimi 0: [email protected]
2479*22dc650dSSadaf Ebrahimi 1: user@dom
2480*22dc650dSSadaf Ebrahimi    user\@dom.ain
2481*22dc650dSSadaf Ebrahimi 0: [email protected]
2482*22dc650dSSadaf Ebrahimi 1: user@dom
2483*22dc650dSSadaf Ebrahimi    \"A. Other\" <user.1234\@dom.ain> (a comment)
2484*22dc650dSSadaf Ebrahimi 0: "A. Other" <[email protected]>
2485*22dc650dSSadaf Ebrahimi    A. Other <user.1234\@dom.ain> (a comment)
2486*22dc650dSSadaf Ebrahimi 0:  Other <[email protected]>
2487*22dc650dSSadaf Ebrahimi    \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
2488*22dc650dSSadaf Ebrahimi 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
2489*22dc650dSSadaf Ebrahimi 1: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re
2490*22dc650dSSadaf Ebrahimi    A missing angle <user\@some.where
2491*22dc650dSSadaf Ebrahimi 0: [email protected]
2492*22dc650dSSadaf Ebrahimi 1: user@some
2493*22dc650dSSadaf Ebrahimi\= Expect no match
2494*22dc650dSSadaf Ebrahimi    The quick brown fox
2495*22dc650dSSadaf EbrahimiNo match
2496*22dc650dSSadaf Ebrahimi
2497*22dc650dSSadaf Ebrahimi/abc\0def\00pqr\000xyz\0000AB/
2498*22dc650dSSadaf Ebrahimi    abc\0def\00pqr\000xyz\0000AB
2499*22dc650dSSadaf Ebrahimi 0: abc\x00def\x00pqr\x00xyz\x000AB
2500*22dc650dSSadaf Ebrahimi    abc456 abc\0def\00pqr\000xyz\0000ABCDE
2501*22dc650dSSadaf Ebrahimi 0: abc\x00def\x00pqr\x00xyz\x000AB
2502*22dc650dSSadaf Ebrahimi
2503*22dc650dSSadaf Ebrahimi/abc\x0def\x00pqr\x000xyz\x0000AB/
2504*22dc650dSSadaf Ebrahimi    abc\x0def\x00pqr\x000xyz\x0000AB
2505*22dc650dSSadaf Ebrahimi 0: abc\x0def\x00pqr\x000xyz\x0000AB
2506*22dc650dSSadaf Ebrahimi    abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
2507*22dc650dSSadaf Ebrahimi 0: abc\x0def\x00pqr\x000xyz\x0000AB
2508*22dc650dSSadaf Ebrahimi
2509*22dc650dSSadaf Ebrahimi/^[\000-\037]/
2510*22dc650dSSadaf Ebrahimi    \0A
2511*22dc650dSSadaf Ebrahimi 0: \x00
2512*22dc650dSSadaf Ebrahimi    \01B
2513*22dc650dSSadaf Ebrahimi 0: \x01
2514*22dc650dSSadaf Ebrahimi    \037C
2515*22dc650dSSadaf Ebrahimi 0: \x1f
2516*22dc650dSSadaf Ebrahimi
2517*22dc650dSSadaf Ebrahimi/\0*/
2518*22dc650dSSadaf Ebrahimi    \0\0\0\0
2519*22dc650dSSadaf Ebrahimi 0: \x00\x00\x00\x00
2520*22dc650dSSadaf Ebrahimi
2521*22dc650dSSadaf Ebrahimi/A\x0{2,3}Z/
2522*22dc650dSSadaf Ebrahimi    The A\x0\x0Z
2523*22dc650dSSadaf Ebrahimi 0: A\x00\x00Z
2524*22dc650dSSadaf Ebrahimi    An A\0\x0\0Z
2525*22dc650dSSadaf Ebrahimi 0: A\x00\x00\x00Z
2526*22dc650dSSadaf Ebrahimi\= Expect no match
2527*22dc650dSSadaf Ebrahimi    A\0Z
2528*22dc650dSSadaf EbrahimiNo match
2529*22dc650dSSadaf Ebrahimi    A\0\x0\0\x0Z
2530*22dc650dSSadaf EbrahimiNo match
2531*22dc650dSSadaf Ebrahimi
2532*22dc650dSSadaf Ebrahimi/^\s/
2533*22dc650dSSadaf Ebrahimi    \040abc
2534*22dc650dSSadaf Ebrahimi 0:
2535*22dc650dSSadaf Ebrahimi    \x0cabc
2536*22dc650dSSadaf Ebrahimi 0: \x0c
2537*22dc650dSSadaf Ebrahimi    \nabc
2538*22dc650dSSadaf Ebrahimi 0: \x0a
2539*22dc650dSSadaf Ebrahimi    \rabc
2540*22dc650dSSadaf Ebrahimi 0: \x0d
2541*22dc650dSSadaf Ebrahimi    \tabc
2542*22dc650dSSadaf Ebrahimi 0: \x09
2543*22dc650dSSadaf Ebrahimi\= Expect no match
2544*22dc650dSSadaf Ebrahimi    abc
2545*22dc650dSSadaf EbrahimiNo match
2546*22dc650dSSadaf Ebrahimi
2547*22dc650dSSadaf Ebrahimi/^a	b
2548*22dc650dSSadaf Ebrahimi      c/x
2549*22dc650dSSadaf Ebrahimi    abc
2550*22dc650dSSadaf Ebrahimi 0: abc
2551*22dc650dSSadaf Ebrahimi
2552*22dc650dSSadaf Ebrahimi/ab{1,3}bc/
2553*22dc650dSSadaf Ebrahimi    abbbbc
2554*22dc650dSSadaf Ebrahimi 0: abbbbc
2555*22dc650dSSadaf Ebrahimi    abbbc
2556*22dc650dSSadaf Ebrahimi 0: abbbc
2557*22dc650dSSadaf Ebrahimi    abbc
2558*22dc650dSSadaf Ebrahimi 0: abbc
2559*22dc650dSSadaf Ebrahimi\= Expect no match
2560*22dc650dSSadaf Ebrahimi    abc
2561*22dc650dSSadaf EbrahimiNo match
2562*22dc650dSSadaf Ebrahimi    abbbbbc
2563*22dc650dSSadaf EbrahimiNo match
2564*22dc650dSSadaf Ebrahimi
2565*22dc650dSSadaf Ebrahimi/([^.]*)\.([^:]*):[T ]+(.*)/
2566*22dc650dSSadaf Ebrahimi    track1.title:TBlah blah blah
2567*22dc650dSSadaf Ebrahimi 0: track1.title:TBlah blah blah
2568*22dc650dSSadaf Ebrahimi
2569*22dc650dSSadaf Ebrahimi/([^.]*)\.([^:]*):[T ]+(.*)/i
2570*22dc650dSSadaf Ebrahimi    track1.title:TBlah blah blah
2571*22dc650dSSadaf Ebrahimi 0: track1.title:TBlah blah blah
2572*22dc650dSSadaf Ebrahimi
2573*22dc650dSSadaf Ebrahimi/([^.]*)\.([^:]*):[t ]+(.*)/i
2574*22dc650dSSadaf Ebrahimi    track1.title:TBlah blah blah
2575*22dc650dSSadaf Ebrahimi 0: track1.title:TBlah blah blah
2576*22dc650dSSadaf Ebrahimi
2577*22dc650dSSadaf Ebrahimi/^[W-c]+$/
2578*22dc650dSSadaf Ebrahimi    WXY_^abc
2579*22dc650dSSadaf Ebrahimi 0: WXY_^abc
2580*22dc650dSSadaf Ebrahimi\= Expect no match
2581*22dc650dSSadaf Ebrahimi    wxy
2582*22dc650dSSadaf EbrahimiNo match
2583*22dc650dSSadaf Ebrahimi
2584*22dc650dSSadaf Ebrahimi/^[W-c]+$/i
2585*22dc650dSSadaf Ebrahimi    WXY_^abc
2586*22dc650dSSadaf Ebrahimi 0: WXY_^abc
2587*22dc650dSSadaf Ebrahimi    wxy_^ABC
2588*22dc650dSSadaf Ebrahimi 0: wxy_^ABC
2589*22dc650dSSadaf Ebrahimi
2590*22dc650dSSadaf Ebrahimi/^[\x3f-\x5F]+$/i
2591*22dc650dSSadaf Ebrahimi    WXY_^abc
2592*22dc650dSSadaf Ebrahimi 0: WXY_^abc
2593*22dc650dSSadaf Ebrahimi    wxy_^ABC
2594*22dc650dSSadaf Ebrahimi 0: wxy_^ABC
2595*22dc650dSSadaf Ebrahimi
2596*22dc650dSSadaf Ebrahimi/^abc$/m
2597*22dc650dSSadaf Ebrahimi    abc
2598*22dc650dSSadaf Ebrahimi 0: abc
2599*22dc650dSSadaf Ebrahimi    qqq\nabc
2600*22dc650dSSadaf Ebrahimi 0: abc
2601*22dc650dSSadaf Ebrahimi    abc\nzzz
2602*22dc650dSSadaf Ebrahimi 0: abc
2603*22dc650dSSadaf Ebrahimi    qqq\nabc\nzzz
2604*22dc650dSSadaf Ebrahimi 0: abc
2605*22dc650dSSadaf Ebrahimi
2606*22dc650dSSadaf Ebrahimi/^abc$/
2607*22dc650dSSadaf Ebrahimi    abc
2608*22dc650dSSadaf Ebrahimi 0: abc
2609*22dc650dSSadaf Ebrahimi\= Expect no match
2610*22dc650dSSadaf Ebrahimi    qqq\nabc
2611*22dc650dSSadaf EbrahimiNo match
2612*22dc650dSSadaf Ebrahimi    abc\nzzz
2613*22dc650dSSadaf EbrahimiNo match
2614*22dc650dSSadaf Ebrahimi    qqq\nabc\nzzz
2615*22dc650dSSadaf EbrahimiNo match
2616*22dc650dSSadaf Ebrahimi
2617*22dc650dSSadaf Ebrahimi/\Aabc\Z/m
2618*22dc650dSSadaf Ebrahimi    abc
2619*22dc650dSSadaf Ebrahimi 0: abc
2620*22dc650dSSadaf Ebrahimi    abc\n
2621*22dc650dSSadaf Ebrahimi 0: abc
2622*22dc650dSSadaf Ebrahimi\= Expect no match
2623*22dc650dSSadaf Ebrahimi    qqq\nabc
2624*22dc650dSSadaf EbrahimiNo match
2625*22dc650dSSadaf Ebrahimi    abc\nzzz
2626*22dc650dSSadaf EbrahimiNo match
2627*22dc650dSSadaf Ebrahimi    qqq\nabc\nzzz
2628*22dc650dSSadaf EbrahimiNo match
2629*22dc650dSSadaf Ebrahimi
2630*22dc650dSSadaf Ebrahimi/\A(.)*\Z/s
2631*22dc650dSSadaf Ebrahimi    abc\ndef
2632*22dc650dSSadaf Ebrahimi 0: abc\x0adef
2633*22dc650dSSadaf Ebrahimi
2634*22dc650dSSadaf Ebrahimi/\A(.)*\Z/m
2635*22dc650dSSadaf Ebrahimi\= Expect no match
2636*22dc650dSSadaf Ebrahimi    abc\ndef
2637*22dc650dSSadaf EbrahimiNo match
2638*22dc650dSSadaf Ebrahimi
2639*22dc650dSSadaf Ebrahimi/(?:b)|(?::+)/
2640*22dc650dSSadaf Ebrahimi    b::c
2641*22dc650dSSadaf Ebrahimi 0: b
2642*22dc650dSSadaf Ebrahimi    c::b
2643*22dc650dSSadaf Ebrahimi 0: ::
2644*22dc650dSSadaf Ebrahimi
2645*22dc650dSSadaf Ebrahimi/[-az]+/
2646*22dc650dSSadaf Ebrahimi    az-
2647*22dc650dSSadaf Ebrahimi 0: az-
2648*22dc650dSSadaf Ebrahimi\= Expect no match
2649*22dc650dSSadaf Ebrahimi    b
2650*22dc650dSSadaf EbrahimiNo match
2651*22dc650dSSadaf Ebrahimi
2652*22dc650dSSadaf Ebrahimi/[az-]+/
2653*22dc650dSSadaf Ebrahimi    za-
2654*22dc650dSSadaf Ebrahimi 0: za-
2655*22dc650dSSadaf Ebrahimi\= Expect no match
2656*22dc650dSSadaf Ebrahimi    b
2657*22dc650dSSadaf EbrahimiNo match
2658*22dc650dSSadaf Ebrahimi
2659*22dc650dSSadaf Ebrahimi/[a\-z]+/
2660*22dc650dSSadaf Ebrahimi    a-z
2661*22dc650dSSadaf Ebrahimi 0: a-z
2662*22dc650dSSadaf Ebrahimi\= Expect no match
2663*22dc650dSSadaf Ebrahimi    b
2664*22dc650dSSadaf EbrahimiNo match
2665*22dc650dSSadaf Ebrahimi
2666*22dc650dSSadaf Ebrahimi/[a-z]+/
2667*22dc650dSSadaf Ebrahimi    abcdxyz
2668*22dc650dSSadaf Ebrahimi 0: abcdxyz
2669*22dc650dSSadaf Ebrahimi
2670*22dc650dSSadaf Ebrahimi/[\d-]+/
2671*22dc650dSSadaf Ebrahimi    12-34
2672*22dc650dSSadaf Ebrahimi 0: 12-34
2673*22dc650dSSadaf Ebrahimi\= Expect no match
2674*22dc650dSSadaf Ebrahimi    aaa
2675*22dc650dSSadaf EbrahimiNo match
2676*22dc650dSSadaf Ebrahimi
2677*22dc650dSSadaf Ebrahimi/\x5c/
2678*22dc650dSSadaf Ebrahimi    \\
2679*22dc650dSSadaf Ebrahimi 0: \
2680*22dc650dSSadaf Ebrahimi
2681*22dc650dSSadaf Ebrahimi/\x20Z/
2682*22dc650dSSadaf Ebrahimi    the Zoo
2683*22dc650dSSadaf Ebrahimi 0:  Z
2684*22dc650dSSadaf Ebrahimi\= Expect no match
2685*22dc650dSSadaf Ebrahimi    Zulu
2686*22dc650dSSadaf EbrahimiNo match
2687*22dc650dSSadaf Ebrahimi
2688*22dc650dSSadaf Ebrahimi/ab{3cd/
2689*22dc650dSSadaf Ebrahimi    ab{3cd
2690*22dc650dSSadaf Ebrahimi 0: ab{3cd
2691*22dc650dSSadaf Ebrahimi
2692*22dc650dSSadaf Ebrahimi/ab{3,cd/
2693*22dc650dSSadaf Ebrahimi    ab{3,cd
2694*22dc650dSSadaf Ebrahimi 0: ab{3,cd
2695*22dc650dSSadaf Ebrahimi
2696*22dc650dSSadaf Ebrahimi/ab{3,4a}cd/
2697*22dc650dSSadaf Ebrahimi    ab{3,4a}cd
2698*22dc650dSSadaf Ebrahimi 0: ab{3,4a}cd
2699*22dc650dSSadaf Ebrahimi
2700*22dc650dSSadaf Ebrahimi/{4,5a}bc/
2701*22dc650dSSadaf Ebrahimi    {4,5a}bc
2702*22dc650dSSadaf Ebrahimi 0: {4,5a}bc
2703*22dc650dSSadaf Ebrahimi
2704*22dc650dSSadaf Ebrahimi/^a.b/newline=lf
2705*22dc650dSSadaf Ebrahimi    a\rb
2706*22dc650dSSadaf Ebrahimi 0: a\x0db
2707*22dc650dSSadaf Ebrahimi\= Expect no match
2708*22dc650dSSadaf Ebrahimi    a\nb
2709*22dc650dSSadaf EbrahimiNo match
2710*22dc650dSSadaf Ebrahimi
2711*22dc650dSSadaf Ebrahimi/abc$/
2712*22dc650dSSadaf Ebrahimi    abc
2713*22dc650dSSadaf Ebrahimi 0: abc
2714*22dc650dSSadaf Ebrahimi    abc\n
2715*22dc650dSSadaf Ebrahimi 0: abc
2716*22dc650dSSadaf Ebrahimi\= Expect no match
2717*22dc650dSSadaf Ebrahimi    abc\ndef
2718*22dc650dSSadaf EbrahimiNo match
2719*22dc650dSSadaf Ebrahimi
2720*22dc650dSSadaf Ebrahimi/(abc)\123/
2721*22dc650dSSadaf Ebrahimi    abc\x53
2722*22dc650dSSadaf Ebrahimi 0: abcS
2723*22dc650dSSadaf Ebrahimi
2724*22dc650dSSadaf Ebrahimi/(abc)\223/
2725*22dc650dSSadaf Ebrahimi    abc\x93
2726*22dc650dSSadaf Ebrahimi 0: abc\x93
2727*22dc650dSSadaf Ebrahimi
2728*22dc650dSSadaf Ebrahimi/(abc)\323/
2729*22dc650dSSadaf Ebrahimi    abc\xd3
2730*22dc650dSSadaf Ebrahimi 0: abc\xd3
2731*22dc650dSSadaf Ebrahimi
2732*22dc650dSSadaf Ebrahimi/(abc)\100/
2733*22dc650dSSadaf Ebrahimi    abc\x40
2734*22dc650dSSadaf Ebrahimi 0: abc@
2735*22dc650dSSadaf Ebrahimi    abc\100
2736*22dc650dSSadaf Ebrahimi 0: abc@
2737*22dc650dSSadaf Ebrahimi
2738*22dc650dSSadaf Ebrahimi/(abc)\1000/
2739*22dc650dSSadaf Ebrahimi    abc\x400
2740*22dc650dSSadaf Ebrahimi 0: abc@0
2741*22dc650dSSadaf Ebrahimi    abc\x40\x30
2742*22dc650dSSadaf Ebrahimi 0: abc@0
2743*22dc650dSSadaf Ebrahimi    abc\1000
2744*22dc650dSSadaf Ebrahimi 0: abc@0
2745*22dc650dSSadaf Ebrahimi    abc\100\x30
2746*22dc650dSSadaf Ebrahimi 0: abc@0
2747*22dc650dSSadaf Ebrahimi    abc\100\060
2748*22dc650dSSadaf Ebrahimi 0: abc@0
2749*22dc650dSSadaf Ebrahimi    abc\100\60
2750*22dc650dSSadaf Ebrahimi 0: abc@0
2751*22dc650dSSadaf Ebrahimi
2752*22dc650dSSadaf Ebrahimi/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
2753*22dc650dSSadaf Ebrahimi    abcdefghijk\12S
2754*22dc650dSSadaf Ebrahimi 0: abcdefghijk\x0aS
2755*22dc650dSSadaf Ebrahimi
2756*22dc650dSSadaf Ebrahimi/a{0}bc/
2757*22dc650dSSadaf Ebrahimi    bc
2758*22dc650dSSadaf Ebrahimi 0: bc
2759*22dc650dSSadaf Ebrahimi
2760*22dc650dSSadaf Ebrahimi/(a|(bc)){0,0}?xyz/
2761*22dc650dSSadaf Ebrahimi    xyz
2762*22dc650dSSadaf Ebrahimi 0: xyz
2763*22dc650dSSadaf Ebrahimi
2764*22dc650dSSadaf Ebrahimi/abc[\10]de/
2765*22dc650dSSadaf Ebrahimi    abc\010de
2766*22dc650dSSadaf Ebrahimi 0: abc\x08de
2767*22dc650dSSadaf Ebrahimi
2768*22dc650dSSadaf Ebrahimi/abc[\1]de/
2769*22dc650dSSadaf Ebrahimi    abc\1de
2770*22dc650dSSadaf Ebrahimi 0: abc\x01de
2771*22dc650dSSadaf Ebrahimi
2772*22dc650dSSadaf Ebrahimi/(abc)[\1]de/
2773*22dc650dSSadaf Ebrahimi    abc\1de
2774*22dc650dSSadaf Ebrahimi 0: abc\x01de
2775*22dc650dSSadaf Ebrahimi
2776*22dc650dSSadaf Ebrahimi/(?s)a.b/
2777*22dc650dSSadaf Ebrahimi    a\nb
2778*22dc650dSSadaf Ebrahimi 0: a\x0ab
2779*22dc650dSSadaf Ebrahimi
2780*22dc650dSSadaf Ebrahimi/^([^a])([^\b])([^c]*)([^d]{3,4})/
2781*22dc650dSSadaf Ebrahimi    baNOTccccd
2782*22dc650dSSadaf Ebrahimi 0: baNOTcccc
2783*22dc650dSSadaf Ebrahimi 1: baNOTccc
2784*22dc650dSSadaf Ebrahimi 2: baNOTcc
2785*22dc650dSSadaf Ebrahimi 3: baNOTc
2786*22dc650dSSadaf Ebrahimi    baNOTcccd
2787*22dc650dSSadaf Ebrahimi 0: baNOTccc
2788*22dc650dSSadaf Ebrahimi 1: baNOTcc
2789*22dc650dSSadaf Ebrahimi 2: baNOTc
2790*22dc650dSSadaf Ebrahimi    baNOTccd
2791*22dc650dSSadaf Ebrahimi 0: baNOTcc
2792*22dc650dSSadaf Ebrahimi 1: baNOTc
2793*22dc650dSSadaf Ebrahimi    bacccd
2794*22dc650dSSadaf Ebrahimi 0: baccc
2795*22dc650dSSadaf Ebrahimi\= Expect no match
2796*22dc650dSSadaf Ebrahimi    anything
2797*22dc650dSSadaf EbrahimiNo match
2798*22dc650dSSadaf Ebrahimi    b\bc
2799*22dc650dSSadaf EbrahimiNo match
2800*22dc650dSSadaf Ebrahimi    baccd
2801*22dc650dSSadaf EbrahimiNo match
2802*22dc650dSSadaf Ebrahimi
2803*22dc650dSSadaf Ebrahimi/[^a]/
2804*22dc650dSSadaf Ebrahimi    Abc
2805*22dc650dSSadaf Ebrahimi 0: A
2806*22dc650dSSadaf Ebrahimi
2807*22dc650dSSadaf Ebrahimi/[^a]/i
2808*22dc650dSSadaf Ebrahimi    Abc
2809*22dc650dSSadaf Ebrahimi 0: b
2810*22dc650dSSadaf Ebrahimi
2811*22dc650dSSadaf Ebrahimi/[^a]+/
2812*22dc650dSSadaf Ebrahimi    AAAaAbc
2813*22dc650dSSadaf Ebrahimi 0: AAA
2814*22dc650dSSadaf Ebrahimi
2815*22dc650dSSadaf Ebrahimi/[^a]+/i
2816*22dc650dSSadaf Ebrahimi    AAAaAbc
2817*22dc650dSSadaf Ebrahimi 0: bc
2818*22dc650dSSadaf Ebrahimi
2819*22dc650dSSadaf Ebrahimi/[^a]+/
2820*22dc650dSSadaf Ebrahimi    bbb\nccc
2821*22dc650dSSadaf Ebrahimi 0: bbb\x0accc
2822*22dc650dSSadaf Ebrahimi
2823*22dc650dSSadaf Ebrahimi/[^k]$/
2824*22dc650dSSadaf Ebrahimi    abc
2825*22dc650dSSadaf Ebrahimi 0: c
2826*22dc650dSSadaf Ebrahimi\= Expect no match
2827*22dc650dSSadaf Ebrahimi    abk
2828*22dc650dSSadaf EbrahimiNo match
2829*22dc650dSSadaf Ebrahimi
2830*22dc650dSSadaf Ebrahimi/[^k]{2,3}$/
2831*22dc650dSSadaf Ebrahimi    abc
2832*22dc650dSSadaf Ebrahimi 0: abc
2833*22dc650dSSadaf Ebrahimi    kbc
2834*22dc650dSSadaf Ebrahimi 0: bc
2835*22dc650dSSadaf Ebrahimi    kabc
2836*22dc650dSSadaf Ebrahimi 0: abc
2837*22dc650dSSadaf Ebrahimi\= Expect no match
2838*22dc650dSSadaf Ebrahimi    abk
2839*22dc650dSSadaf EbrahimiNo match
2840*22dc650dSSadaf Ebrahimi    akb
2841*22dc650dSSadaf EbrahimiNo match
2842*22dc650dSSadaf Ebrahimi    akk
2843*22dc650dSSadaf EbrahimiNo match
2844*22dc650dSSadaf Ebrahimi
2845*22dc650dSSadaf Ebrahimi/^\d{8,}\@.+[^k]$/
2846*22dc650dSSadaf Ebrahimi    12345678\@a.b.c.d
2847*22dc650dSSadaf Ebrahimi 0: [email protected]
2848*22dc650dSSadaf Ebrahimi    123456789\@x.y.z
2849*22dc650dSSadaf Ebrahimi 0: [email protected]
2850*22dc650dSSadaf Ebrahimi\= Expect no match
2851*22dc650dSSadaf Ebrahimi    12345678\@x.y.uk
2852*22dc650dSSadaf EbrahimiNo match
2853*22dc650dSSadaf Ebrahimi    1234567\@a.b.c.d
2854*22dc650dSSadaf EbrahimiNo match
2855*22dc650dSSadaf Ebrahimi
2856*22dc650dSSadaf Ebrahimi/[^a]/
2857*22dc650dSSadaf Ebrahimi    aaaabcd
2858*22dc650dSSadaf Ebrahimi 0: b
2859*22dc650dSSadaf Ebrahimi    aaAabcd
2860*22dc650dSSadaf Ebrahimi 0: A
2861*22dc650dSSadaf Ebrahimi
2862*22dc650dSSadaf Ebrahimi/[^a]/i
2863*22dc650dSSadaf Ebrahimi    aaaabcd
2864*22dc650dSSadaf Ebrahimi 0: b
2865*22dc650dSSadaf Ebrahimi    aaAabcd
2866*22dc650dSSadaf Ebrahimi 0: b
2867*22dc650dSSadaf Ebrahimi
2868*22dc650dSSadaf Ebrahimi/[^az]/
2869*22dc650dSSadaf Ebrahimi    aaaabcd
2870*22dc650dSSadaf Ebrahimi 0: b
2871*22dc650dSSadaf Ebrahimi    aaAabcd
2872*22dc650dSSadaf Ebrahimi 0: A
2873*22dc650dSSadaf Ebrahimi
2874*22dc650dSSadaf Ebrahimi/[^az]/i
2875*22dc650dSSadaf Ebrahimi    aaaabcd
2876*22dc650dSSadaf Ebrahimi 0: b
2877*22dc650dSSadaf Ebrahimi    aaAabcd
2878*22dc650dSSadaf Ebrahimi 0: b
2879*22dc650dSSadaf Ebrahimi
2880*22dc650dSSadaf Ebrahimi/\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377/
2881*22dc650dSSadaf Ebrahimi \000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377
2882*22dc650dSSadaf Ebrahimi 0: \x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff
2883*22dc650dSSadaf Ebrahimi
2884*22dc650dSSadaf Ebrahimi/P[^*]TAIRE[^*]{1,6}?LL/
2885*22dc650dSSadaf Ebrahimi    xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
2886*22dc650dSSadaf Ebrahimi 0: PSTAIREISLL
2887*22dc650dSSadaf Ebrahimi
2888*22dc650dSSadaf Ebrahimi/P[^*]TAIRE[^*]{1,}?LL/
2889*22dc650dSSadaf Ebrahimi    xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
2890*22dc650dSSadaf Ebrahimi 0: PSTAIREISLL
2891*22dc650dSSadaf Ebrahimi
2892*22dc650dSSadaf Ebrahimi/(\.\d\d[1-9]?)\d+/
2893*22dc650dSSadaf Ebrahimi    1.230003938
2894*22dc650dSSadaf Ebrahimi 0: .230003938
2895*22dc650dSSadaf Ebrahimi    1.875000282
2896*22dc650dSSadaf Ebrahimi 0: .875000282
2897*22dc650dSSadaf Ebrahimi    1.235
2898*22dc650dSSadaf Ebrahimi 0: .235
2899*22dc650dSSadaf Ebrahimi
2900*22dc650dSSadaf Ebrahimi/(\.\d\d((?=0)|\d(?=\d)))/
2901*22dc650dSSadaf Ebrahimi    1.230003938
2902*22dc650dSSadaf Ebrahimi 0: .230
2903*22dc650dSSadaf Ebrahimi 1: .23
2904*22dc650dSSadaf Ebrahimi    1.875000282
2905*22dc650dSSadaf Ebrahimi 0: .875
2906*22dc650dSSadaf Ebrahimi\= Expect no match
2907*22dc650dSSadaf Ebrahimi    1.235
2908*22dc650dSSadaf EbrahimiNo match
2909*22dc650dSSadaf Ebrahimi
2910*22dc650dSSadaf Ebrahimi/a(?)b/
2911*22dc650dSSadaf Ebrahimi    ab
2912*22dc650dSSadaf Ebrahimi 0: ab
2913*22dc650dSSadaf Ebrahimi
2914*22dc650dSSadaf Ebrahimi/\b(foo)\s+(\w+)/i
2915*22dc650dSSadaf Ebrahimi    Food is on the foo table
2916*22dc650dSSadaf Ebrahimi 0: foo table
2917*22dc650dSSadaf Ebrahimi
2918*22dc650dSSadaf Ebrahimi/foo(.*)bar/
2919*22dc650dSSadaf Ebrahimi    The food is under the bar in the barn.
2920*22dc650dSSadaf Ebrahimi 0: food is under the bar in the bar
2921*22dc650dSSadaf Ebrahimi 1: food is under the bar
2922*22dc650dSSadaf Ebrahimi
2923*22dc650dSSadaf Ebrahimi/foo(.*?)bar/
2924*22dc650dSSadaf Ebrahimi    The food is under the bar in the barn.
2925*22dc650dSSadaf Ebrahimi 0: food is under the bar in the bar
2926*22dc650dSSadaf Ebrahimi 1: food is under the bar
2927*22dc650dSSadaf Ebrahimi
2928*22dc650dSSadaf Ebrahimi/(.*)(\d*)/no_auto_possess
2929*22dc650dSSadaf Ebrahimi    I have 2 numbers: 53147
2930*22dc650dSSadaf EbrahimiMatched, but offsets vector is too small to show all matches
2931*22dc650dSSadaf Ebrahimi 0: I have 2 numbers: 53147
2932*22dc650dSSadaf Ebrahimi 1: I have 2 numbers: 5314
2933*22dc650dSSadaf Ebrahimi 2: I have 2 numbers: 531
2934*22dc650dSSadaf Ebrahimi 3: I have 2 numbers: 53
2935*22dc650dSSadaf Ebrahimi 4: I have 2 numbers: 5
2936*22dc650dSSadaf Ebrahimi 5: I have 2 numbers:
2937*22dc650dSSadaf Ebrahimi 6: I have 2 numbers:
2938*22dc650dSSadaf Ebrahimi 7: I have 2 numbers
2939*22dc650dSSadaf Ebrahimi 8: I have 2 number
2940*22dc650dSSadaf Ebrahimi 9: I have 2 numbe
2941*22dc650dSSadaf Ebrahimi10: I have 2 numb
2942*22dc650dSSadaf Ebrahimi11: I have 2 num
2943*22dc650dSSadaf Ebrahimi12: I have 2 nu
2944*22dc650dSSadaf Ebrahimi13: I have 2 n
2945*22dc650dSSadaf Ebrahimi14: I have 2
2946*22dc650dSSadaf Ebrahimi
2947*22dc650dSSadaf Ebrahimi/(.*)(\d+)/
2948*22dc650dSSadaf Ebrahimi    I have 2 numbers: 53147
2949*22dc650dSSadaf Ebrahimi 0: I have 2 numbers: 53147
2950*22dc650dSSadaf Ebrahimi 1: I have 2
2951*22dc650dSSadaf Ebrahimi
2952*22dc650dSSadaf Ebrahimi/(.*?)(\d*)/no_auto_possess
2953*22dc650dSSadaf Ebrahimi    I have 2 numbers: 53147
2954*22dc650dSSadaf EbrahimiMatched, but offsets vector is too small to show all matches
2955*22dc650dSSadaf Ebrahimi 0: I have 2 numbers: 53147
2956*22dc650dSSadaf Ebrahimi 1: I have 2 numbers: 5314
2957*22dc650dSSadaf Ebrahimi 2: I have 2 numbers: 531
2958*22dc650dSSadaf Ebrahimi 3: I have 2 numbers: 53
2959*22dc650dSSadaf Ebrahimi 4: I have 2 numbers: 5
2960*22dc650dSSadaf Ebrahimi 5: I have 2 numbers:
2961*22dc650dSSadaf Ebrahimi 6: I have 2 numbers:
2962*22dc650dSSadaf Ebrahimi 7: I have 2 numbers
2963*22dc650dSSadaf Ebrahimi 8: I have 2 number
2964*22dc650dSSadaf Ebrahimi 9: I have 2 numbe
2965*22dc650dSSadaf Ebrahimi10: I have 2 numb
2966*22dc650dSSadaf Ebrahimi11: I have 2 num
2967*22dc650dSSadaf Ebrahimi12: I have 2 nu
2968*22dc650dSSadaf Ebrahimi13: I have 2 n
2969*22dc650dSSadaf Ebrahimi14: I have 2
2970*22dc650dSSadaf Ebrahimi
2971*22dc650dSSadaf Ebrahimi/(.*?)(\d+)/
2972*22dc650dSSadaf Ebrahimi    I have 2 numbers: 53147
2973*22dc650dSSadaf Ebrahimi 0: I have 2 numbers: 53147
2974*22dc650dSSadaf Ebrahimi 1: I have 2
2975*22dc650dSSadaf Ebrahimi
2976*22dc650dSSadaf Ebrahimi/(.*)(\d+)$/
2977*22dc650dSSadaf Ebrahimi    I have 2 numbers: 53147
2978*22dc650dSSadaf Ebrahimi 0: I have 2 numbers: 53147
2979*22dc650dSSadaf Ebrahimi
2980*22dc650dSSadaf Ebrahimi/(.*?)(\d+)$/
2981*22dc650dSSadaf Ebrahimi    I have 2 numbers: 53147
2982*22dc650dSSadaf Ebrahimi 0: I have 2 numbers: 53147
2983*22dc650dSSadaf Ebrahimi
2984*22dc650dSSadaf Ebrahimi/(.*)\b(\d+)$/
2985*22dc650dSSadaf Ebrahimi    I have 2 numbers: 53147
2986*22dc650dSSadaf Ebrahimi 0: I have 2 numbers: 53147
2987*22dc650dSSadaf Ebrahimi
2988*22dc650dSSadaf Ebrahimi/(.*\D)(\d+)$/
2989*22dc650dSSadaf Ebrahimi    I have 2 numbers: 53147
2990*22dc650dSSadaf Ebrahimi 0: I have 2 numbers: 53147
2991*22dc650dSSadaf Ebrahimi
2992*22dc650dSSadaf Ebrahimi/^\D*(?!123)/
2993*22dc650dSSadaf Ebrahimi    ABC123
2994*22dc650dSSadaf Ebrahimi 0: AB
2995*22dc650dSSadaf Ebrahimi 1: A
2996*22dc650dSSadaf Ebrahimi 2:
2997*22dc650dSSadaf Ebrahimi
2998*22dc650dSSadaf Ebrahimi/^(\D*)(?=\d)(?!123)/
2999*22dc650dSSadaf Ebrahimi    ABC445
3000*22dc650dSSadaf Ebrahimi 0: ABC
3001*22dc650dSSadaf Ebrahimi\= Expect no match
3002*22dc650dSSadaf Ebrahimi    ABC123
3003*22dc650dSSadaf EbrahimiNo match
3004*22dc650dSSadaf Ebrahimi
3005*22dc650dSSadaf Ebrahimi/^[W-]46]/
3006*22dc650dSSadaf Ebrahimi    W46]789
3007*22dc650dSSadaf Ebrahimi 0: W46]
3008*22dc650dSSadaf Ebrahimi    -46]789
3009*22dc650dSSadaf Ebrahimi 0: -46]
3010*22dc650dSSadaf Ebrahimi\= Expect no match
3011*22dc650dSSadaf Ebrahimi    Wall
3012*22dc650dSSadaf EbrahimiNo match
3013*22dc650dSSadaf Ebrahimi    Zebra
3014*22dc650dSSadaf EbrahimiNo match
3015*22dc650dSSadaf Ebrahimi    42
3016*22dc650dSSadaf EbrahimiNo match
3017*22dc650dSSadaf Ebrahimi    [abcd]
3018*22dc650dSSadaf EbrahimiNo match
3019*22dc650dSSadaf Ebrahimi    ]abcd[
3020*22dc650dSSadaf EbrahimiNo match
3021*22dc650dSSadaf Ebrahimi
3022*22dc650dSSadaf Ebrahimi/^[W-\]46]/
3023*22dc650dSSadaf Ebrahimi    W46]789
3024*22dc650dSSadaf Ebrahimi 0: W
3025*22dc650dSSadaf Ebrahimi    Wall
3026*22dc650dSSadaf Ebrahimi 0: W
3027*22dc650dSSadaf Ebrahimi    Zebra
3028*22dc650dSSadaf Ebrahimi 0: Z
3029*22dc650dSSadaf Ebrahimi    Xylophone
3030*22dc650dSSadaf Ebrahimi 0: X
3031*22dc650dSSadaf Ebrahimi    42
3032*22dc650dSSadaf Ebrahimi 0: 4
3033*22dc650dSSadaf Ebrahimi    [abcd]
3034*22dc650dSSadaf Ebrahimi 0: [
3035*22dc650dSSadaf Ebrahimi    ]abcd[
3036*22dc650dSSadaf Ebrahimi 0: ]
3037*22dc650dSSadaf Ebrahimi    \\backslash
3038*22dc650dSSadaf Ebrahimi 0: \
3039*22dc650dSSadaf Ebrahimi\= Expect no match
3040*22dc650dSSadaf Ebrahimi    -46]789
3041*22dc650dSSadaf EbrahimiNo match
3042*22dc650dSSadaf Ebrahimi    well
3043*22dc650dSSadaf EbrahimiNo match
3044*22dc650dSSadaf Ebrahimi
3045*22dc650dSSadaf Ebrahimi/\d\d\/\d\d\/\d\d\d\d/
3046*22dc650dSSadaf Ebrahimi    01/01/2000
3047*22dc650dSSadaf Ebrahimi 0: 01/01/2000
3048*22dc650dSSadaf Ebrahimi
3049*22dc650dSSadaf Ebrahimi/word (?:[a-zA-Z0-9]+ ){0,10}otherword/
3050*22dc650dSSadaf Ebrahimi  word cat dog elephant mussel cow horse canary baboon snake shark otherword
3051*22dc650dSSadaf Ebrahimi 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
3052*22dc650dSSadaf Ebrahimi\= Expect no match
3053*22dc650dSSadaf Ebrahimi  word cat dog elephant mussel cow horse canary baboon snake shark
3054*22dc650dSSadaf EbrahimiNo match
3055*22dc650dSSadaf Ebrahimi
3056*22dc650dSSadaf Ebrahimi/word (?:[a-zA-Z0-9]+ ){0,300}otherword/
3057*22dc650dSSadaf Ebrahimi\= Expect no match
3058*22dc650dSSadaf Ebrahimi  word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope
3059*22dc650dSSadaf EbrahimiNo match
3060*22dc650dSSadaf Ebrahimi
3061*22dc650dSSadaf Ebrahimi/^(a){0,0}/
3062*22dc650dSSadaf Ebrahimi    bcd
3063*22dc650dSSadaf Ebrahimi 0:
3064*22dc650dSSadaf Ebrahimi    abc
3065*22dc650dSSadaf Ebrahimi 0:
3066*22dc650dSSadaf Ebrahimi    aab
3067*22dc650dSSadaf Ebrahimi 0:
3068*22dc650dSSadaf Ebrahimi
3069*22dc650dSSadaf Ebrahimi/^(a){0,1}/
3070*22dc650dSSadaf Ebrahimi    bcd
3071*22dc650dSSadaf Ebrahimi 0:
3072*22dc650dSSadaf Ebrahimi    abc
3073*22dc650dSSadaf Ebrahimi 0: a
3074*22dc650dSSadaf Ebrahimi 1:
3075*22dc650dSSadaf Ebrahimi    aab
3076*22dc650dSSadaf Ebrahimi 0: a
3077*22dc650dSSadaf Ebrahimi 1:
3078*22dc650dSSadaf Ebrahimi
3079*22dc650dSSadaf Ebrahimi/^(a){0,2}/
3080*22dc650dSSadaf Ebrahimi    bcd
3081*22dc650dSSadaf Ebrahimi 0:
3082*22dc650dSSadaf Ebrahimi    abc
3083*22dc650dSSadaf Ebrahimi 0: a
3084*22dc650dSSadaf Ebrahimi 1:
3085*22dc650dSSadaf Ebrahimi    aab
3086*22dc650dSSadaf Ebrahimi 0: aa
3087*22dc650dSSadaf Ebrahimi 1: a
3088*22dc650dSSadaf Ebrahimi 2:
3089*22dc650dSSadaf Ebrahimi
3090*22dc650dSSadaf Ebrahimi/^(a){0,3}/
3091*22dc650dSSadaf Ebrahimi    bcd
3092*22dc650dSSadaf Ebrahimi 0:
3093*22dc650dSSadaf Ebrahimi    abc
3094*22dc650dSSadaf Ebrahimi 0: a
3095*22dc650dSSadaf Ebrahimi 1:
3096*22dc650dSSadaf Ebrahimi    aab
3097*22dc650dSSadaf Ebrahimi 0: aa
3098*22dc650dSSadaf Ebrahimi 1: a
3099*22dc650dSSadaf Ebrahimi 2:
3100*22dc650dSSadaf Ebrahimi    aaa
3101*22dc650dSSadaf Ebrahimi 0: aaa
3102*22dc650dSSadaf Ebrahimi 1: aa
3103*22dc650dSSadaf Ebrahimi 2: a
3104*22dc650dSSadaf Ebrahimi 3:
3105*22dc650dSSadaf Ebrahimi
3106*22dc650dSSadaf Ebrahimi/^(a){0,}/
3107*22dc650dSSadaf Ebrahimi    bcd
3108*22dc650dSSadaf Ebrahimi 0:
3109*22dc650dSSadaf Ebrahimi    abc
3110*22dc650dSSadaf Ebrahimi 0: a
3111*22dc650dSSadaf Ebrahimi 1:
3112*22dc650dSSadaf Ebrahimi    aab
3113*22dc650dSSadaf Ebrahimi 0: aa
3114*22dc650dSSadaf Ebrahimi 1: a
3115*22dc650dSSadaf Ebrahimi 2:
3116*22dc650dSSadaf Ebrahimi    aaa
3117*22dc650dSSadaf Ebrahimi 0: aaa
3118*22dc650dSSadaf Ebrahimi 1: aa
3119*22dc650dSSadaf Ebrahimi 2: a
3120*22dc650dSSadaf Ebrahimi 3:
3121*22dc650dSSadaf Ebrahimi    aaaaaaaa
3122*22dc650dSSadaf Ebrahimi 0: aaaaaaaa
3123*22dc650dSSadaf Ebrahimi 1: aaaaaaa
3124*22dc650dSSadaf Ebrahimi 2: aaaaaa
3125*22dc650dSSadaf Ebrahimi 3: aaaaa
3126*22dc650dSSadaf Ebrahimi 4: aaaa
3127*22dc650dSSadaf Ebrahimi 5: aaa
3128*22dc650dSSadaf Ebrahimi 6: aa
3129*22dc650dSSadaf Ebrahimi 7: a
3130*22dc650dSSadaf Ebrahimi 8:
3131*22dc650dSSadaf Ebrahimi
3132*22dc650dSSadaf Ebrahimi/^(a){1,1}/
3133*22dc650dSSadaf Ebrahimi    abc
3134*22dc650dSSadaf Ebrahimi 0: a
3135*22dc650dSSadaf Ebrahimi    aab
3136*22dc650dSSadaf Ebrahimi 0: a
3137*22dc650dSSadaf Ebrahimi\= Expect no match
3138*22dc650dSSadaf Ebrahimi    bcd
3139*22dc650dSSadaf EbrahimiNo match
3140*22dc650dSSadaf Ebrahimi
3141*22dc650dSSadaf Ebrahimi/^(a){1,2}/
3142*22dc650dSSadaf Ebrahimi    abc
3143*22dc650dSSadaf Ebrahimi 0: a
3144*22dc650dSSadaf Ebrahimi    aab
3145*22dc650dSSadaf Ebrahimi 0: aa
3146*22dc650dSSadaf Ebrahimi 1: a
3147*22dc650dSSadaf Ebrahimi\= Expect no match
3148*22dc650dSSadaf Ebrahimi    bcd
3149*22dc650dSSadaf EbrahimiNo match
3150*22dc650dSSadaf Ebrahimi
3151*22dc650dSSadaf Ebrahimi/^(a){1,3}/
3152*22dc650dSSadaf Ebrahimi    abc
3153*22dc650dSSadaf Ebrahimi 0: a
3154*22dc650dSSadaf Ebrahimi    aab
3155*22dc650dSSadaf Ebrahimi 0: aa
3156*22dc650dSSadaf Ebrahimi 1: a
3157*22dc650dSSadaf Ebrahimi    aaa
3158*22dc650dSSadaf Ebrahimi 0: aaa
3159*22dc650dSSadaf Ebrahimi 1: aa
3160*22dc650dSSadaf Ebrahimi 2: a
3161*22dc650dSSadaf Ebrahimi\= Expect no match
3162*22dc650dSSadaf Ebrahimi    bcd
3163*22dc650dSSadaf EbrahimiNo match
3164*22dc650dSSadaf Ebrahimi
3165*22dc650dSSadaf Ebrahimi/^(a){1,}/
3166*22dc650dSSadaf Ebrahimi    abc
3167*22dc650dSSadaf Ebrahimi 0: a
3168*22dc650dSSadaf Ebrahimi    aab
3169*22dc650dSSadaf Ebrahimi 0: aa
3170*22dc650dSSadaf Ebrahimi 1: a
3171*22dc650dSSadaf Ebrahimi    aaa
3172*22dc650dSSadaf Ebrahimi 0: aaa
3173*22dc650dSSadaf Ebrahimi 1: aa
3174*22dc650dSSadaf Ebrahimi 2: a
3175*22dc650dSSadaf Ebrahimi    aaaaaaaa
3176*22dc650dSSadaf Ebrahimi 0: aaaaaaaa
3177*22dc650dSSadaf Ebrahimi 1: aaaaaaa
3178*22dc650dSSadaf Ebrahimi 2: aaaaaa
3179*22dc650dSSadaf Ebrahimi 3: aaaaa
3180*22dc650dSSadaf Ebrahimi 4: aaaa
3181*22dc650dSSadaf Ebrahimi 5: aaa
3182*22dc650dSSadaf Ebrahimi 6: aa
3183*22dc650dSSadaf Ebrahimi 7: a
3184*22dc650dSSadaf Ebrahimi\= Expect no match
3185*22dc650dSSadaf Ebrahimi    bcd
3186*22dc650dSSadaf EbrahimiNo match
3187*22dc650dSSadaf Ebrahimi
3188*22dc650dSSadaf Ebrahimi/.*\.gif/
3189*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
3190*22dc650dSSadaf Ebrahimi 0: bib.gif
3191*22dc650dSSadaf Ebrahimi
3192*22dc650dSSadaf Ebrahimi/.{0,}\.gif/
3193*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
3194*22dc650dSSadaf Ebrahimi 0: bib.gif
3195*22dc650dSSadaf Ebrahimi
3196*22dc650dSSadaf Ebrahimi/.*\.gif/m
3197*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
3198*22dc650dSSadaf Ebrahimi 0: bib.gif
3199*22dc650dSSadaf Ebrahimi
3200*22dc650dSSadaf Ebrahimi/.*\.gif/s
3201*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
3202*22dc650dSSadaf Ebrahimi 0: borfle\x0abib.gif
3203*22dc650dSSadaf Ebrahimi
3204*22dc650dSSadaf Ebrahimi/.*\.gif/ms
3205*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
3206*22dc650dSSadaf Ebrahimi 0: borfle\x0abib.gif
3207*22dc650dSSadaf Ebrahimi
3208*22dc650dSSadaf Ebrahimi/.*$/
3209*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
3210*22dc650dSSadaf Ebrahimi 0: no
3211*22dc650dSSadaf Ebrahimi
3212*22dc650dSSadaf Ebrahimi/.*$/m
3213*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
3214*22dc650dSSadaf Ebrahimi 0: borfle
3215*22dc650dSSadaf Ebrahimi
3216*22dc650dSSadaf Ebrahimi/.*$/s
3217*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
3218*22dc650dSSadaf Ebrahimi 0: borfle\x0abib.gif\x0ano
3219*22dc650dSSadaf Ebrahimi
3220*22dc650dSSadaf Ebrahimi/.*$/ms
3221*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
3222*22dc650dSSadaf Ebrahimi 0: borfle\x0abib.gif\x0ano
3223*22dc650dSSadaf Ebrahimi 1: borfle\x0abib.gif
3224*22dc650dSSadaf Ebrahimi 2: borfle
3225*22dc650dSSadaf Ebrahimi
3226*22dc650dSSadaf Ebrahimi/.*$/
3227*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno\n
3228*22dc650dSSadaf Ebrahimi 0: no
3229*22dc650dSSadaf Ebrahimi
3230*22dc650dSSadaf Ebrahimi/.*$/m
3231*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno\n
3232*22dc650dSSadaf Ebrahimi 0: borfle
3233*22dc650dSSadaf Ebrahimi
3234*22dc650dSSadaf Ebrahimi/.*$/s
3235*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno\n
3236*22dc650dSSadaf Ebrahimi 0: borfle\x0abib.gif\x0ano\x0a
3237*22dc650dSSadaf Ebrahimi 1: borfle\x0abib.gif\x0ano
3238*22dc650dSSadaf Ebrahimi
3239*22dc650dSSadaf Ebrahimi/.*$/ms
3240*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno\n
3241*22dc650dSSadaf Ebrahimi 0: borfle\x0abib.gif\x0ano\x0a
3242*22dc650dSSadaf Ebrahimi 1: borfle\x0abib.gif\x0ano
3243*22dc650dSSadaf Ebrahimi 2: borfle\x0abib.gif
3244*22dc650dSSadaf Ebrahimi 3: borfle
3245*22dc650dSSadaf Ebrahimi
3246*22dc650dSSadaf Ebrahimi/(.*X|^B)/
3247*22dc650dSSadaf Ebrahimi    abcde\n1234Xyz
3248*22dc650dSSadaf Ebrahimi 0: 1234X
3249*22dc650dSSadaf Ebrahimi    BarFoo
3250*22dc650dSSadaf Ebrahimi 0: B
3251*22dc650dSSadaf Ebrahimi\= Expect no match
3252*22dc650dSSadaf Ebrahimi    abcde\nBar
3253*22dc650dSSadaf EbrahimiNo match
3254*22dc650dSSadaf Ebrahimi
3255*22dc650dSSadaf Ebrahimi/(.*X|^B)/m
3256*22dc650dSSadaf Ebrahimi    abcde\n1234Xyz
3257*22dc650dSSadaf Ebrahimi 0: 1234X
3258*22dc650dSSadaf Ebrahimi    BarFoo
3259*22dc650dSSadaf Ebrahimi 0: B
3260*22dc650dSSadaf Ebrahimi    abcde\nBar
3261*22dc650dSSadaf Ebrahimi 0: B
3262*22dc650dSSadaf Ebrahimi
3263*22dc650dSSadaf Ebrahimi/(.*X|^B)/s
3264*22dc650dSSadaf Ebrahimi    abcde\n1234Xyz
3265*22dc650dSSadaf Ebrahimi 0: abcde\x0a1234X
3266*22dc650dSSadaf Ebrahimi    BarFoo
3267*22dc650dSSadaf Ebrahimi 0: B
3268*22dc650dSSadaf Ebrahimi\= Expect no match
3269*22dc650dSSadaf Ebrahimi    abcde\nBar
3270*22dc650dSSadaf EbrahimiNo match
3271*22dc650dSSadaf Ebrahimi
3272*22dc650dSSadaf Ebrahimi/(.*X|^B)/ms
3273*22dc650dSSadaf Ebrahimi    abcde\n1234Xyz
3274*22dc650dSSadaf Ebrahimi 0: abcde\x0a1234X
3275*22dc650dSSadaf Ebrahimi    BarFoo
3276*22dc650dSSadaf Ebrahimi 0: B
3277*22dc650dSSadaf Ebrahimi    abcde\nBar
3278*22dc650dSSadaf Ebrahimi 0: B
3279*22dc650dSSadaf Ebrahimi
3280*22dc650dSSadaf Ebrahimi/(?s)(.*X|^B)/
3281*22dc650dSSadaf Ebrahimi    abcde\n1234Xyz
3282*22dc650dSSadaf Ebrahimi 0: abcde\x0a1234X
3283*22dc650dSSadaf Ebrahimi    BarFoo
3284*22dc650dSSadaf Ebrahimi 0: B
3285*22dc650dSSadaf Ebrahimi\= Expect no match
3286*22dc650dSSadaf Ebrahimi    abcde\nBar
3287*22dc650dSSadaf EbrahimiNo match
3288*22dc650dSSadaf Ebrahimi
3289*22dc650dSSadaf Ebrahimi/(?s:.*X|^B)/
3290*22dc650dSSadaf Ebrahimi    abcde\n1234Xyz
3291*22dc650dSSadaf Ebrahimi 0: abcde\x0a1234X
3292*22dc650dSSadaf Ebrahimi    BarFoo
3293*22dc650dSSadaf Ebrahimi 0: B
3294*22dc650dSSadaf Ebrahimi\= Expect no match
3295*22dc650dSSadaf Ebrahimi    abcde\nBar
3296*22dc650dSSadaf EbrahimiNo match
3297*22dc650dSSadaf Ebrahimi
3298*22dc650dSSadaf Ebrahimi/^.*B/
3299*22dc650dSSadaf Ebrahimi\= Expect no match
3300*22dc650dSSadaf Ebrahimi    abc\nB
3301*22dc650dSSadaf EbrahimiNo match
3302*22dc650dSSadaf Ebrahimi
3303*22dc650dSSadaf Ebrahimi/(?s)^.*B/
3304*22dc650dSSadaf Ebrahimi    abc\nB
3305*22dc650dSSadaf Ebrahimi 0: abc\x0aB
3306*22dc650dSSadaf Ebrahimi
3307*22dc650dSSadaf Ebrahimi/(?m)^.*B/
3308*22dc650dSSadaf Ebrahimi    abc\nB
3309*22dc650dSSadaf Ebrahimi 0: B
3310*22dc650dSSadaf Ebrahimi
3311*22dc650dSSadaf Ebrahimi/(?ms)^.*B/
3312*22dc650dSSadaf Ebrahimi    abc\nB
3313*22dc650dSSadaf Ebrahimi 0: abc\x0aB
3314*22dc650dSSadaf Ebrahimi
3315*22dc650dSSadaf Ebrahimi/(?ms)^B/
3316*22dc650dSSadaf Ebrahimi    abc\nB
3317*22dc650dSSadaf Ebrahimi 0: B
3318*22dc650dSSadaf Ebrahimi
3319*22dc650dSSadaf Ebrahimi/(?s)B$/
3320*22dc650dSSadaf Ebrahimi    B\n
3321*22dc650dSSadaf Ebrahimi 0: B
3322*22dc650dSSadaf Ebrahimi
3323*22dc650dSSadaf Ebrahimi/^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
3324*22dc650dSSadaf Ebrahimi    123456654321
3325*22dc650dSSadaf Ebrahimi 0: 123456654321
3326*22dc650dSSadaf Ebrahimi
3327*22dc650dSSadaf Ebrahimi/^\d\d\d\d\d\d\d\d\d\d\d\d/
3328*22dc650dSSadaf Ebrahimi    123456654321
3329*22dc650dSSadaf Ebrahimi 0: 123456654321
3330*22dc650dSSadaf Ebrahimi
3331*22dc650dSSadaf Ebrahimi/^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
3332*22dc650dSSadaf Ebrahimi    123456654321
3333*22dc650dSSadaf Ebrahimi 0: 123456654321
3334*22dc650dSSadaf Ebrahimi
3335*22dc650dSSadaf Ebrahimi/^[abc]{12}/
3336*22dc650dSSadaf Ebrahimi    abcabcabcabc
3337*22dc650dSSadaf Ebrahimi 0: abcabcabcabc
3338*22dc650dSSadaf Ebrahimi
3339*22dc650dSSadaf Ebrahimi/^[a-c]{12}/
3340*22dc650dSSadaf Ebrahimi    abcabcabcabc
3341*22dc650dSSadaf Ebrahimi 0: abcabcabcabc
3342*22dc650dSSadaf Ebrahimi
3343*22dc650dSSadaf Ebrahimi/^(a|b|c){12}/
3344*22dc650dSSadaf Ebrahimi    abcabcabcabc
3345*22dc650dSSadaf Ebrahimi 0: abcabcabcabc
3346*22dc650dSSadaf Ebrahimi
3347*22dc650dSSadaf Ebrahimi/^[abcdefghijklmnopqrstuvwxy0123456789]/
3348*22dc650dSSadaf Ebrahimi    n
3349*22dc650dSSadaf Ebrahimi 0: n
3350*22dc650dSSadaf Ebrahimi\= Expect no match
3351*22dc650dSSadaf Ebrahimi    z
3352*22dc650dSSadaf EbrahimiNo match
3353*22dc650dSSadaf Ebrahimi
3354*22dc650dSSadaf Ebrahimi/abcde{0,0}/
3355*22dc650dSSadaf Ebrahimi    abcd
3356*22dc650dSSadaf Ebrahimi 0: abcd
3357*22dc650dSSadaf Ebrahimi\= Expect no match
3358*22dc650dSSadaf Ebrahimi    abce
3359*22dc650dSSadaf EbrahimiNo match
3360*22dc650dSSadaf Ebrahimi
3361*22dc650dSSadaf Ebrahimi/ab[cd]{0,0}e/
3362*22dc650dSSadaf Ebrahimi    abe
3363*22dc650dSSadaf Ebrahimi 0: abe
3364*22dc650dSSadaf Ebrahimi\= Expect no match
3365*22dc650dSSadaf Ebrahimi    abcde
3366*22dc650dSSadaf EbrahimiNo match
3367*22dc650dSSadaf Ebrahimi
3368*22dc650dSSadaf Ebrahimi/ab(c){0,0}d/
3369*22dc650dSSadaf Ebrahimi    abd
3370*22dc650dSSadaf Ebrahimi 0: abd
3371*22dc650dSSadaf Ebrahimi\= Expect no match
3372*22dc650dSSadaf Ebrahimi    abcd
3373*22dc650dSSadaf EbrahimiNo match
3374*22dc650dSSadaf Ebrahimi
3375*22dc650dSSadaf Ebrahimi/a(b*)/
3376*22dc650dSSadaf Ebrahimi    a
3377*22dc650dSSadaf Ebrahimi 0: a
3378*22dc650dSSadaf Ebrahimi    ab
3379*22dc650dSSadaf Ebrahimi 0: ab
3380*22dc650dSSadaf Ebrahimi    abbbb
3381*22dc650dSSadaf Ebrahimi 0: abbbb
3382*22dc650dSSadaf Ebrahimi\= Expect no match
3383*22dc650dSSadaf Ebrahimi    bbbbb
3384*22dc650dSSadaf EbrahimiNo match
3385*22dc650dSSadaf Ebrahimi
3386*22dc650dSSadaf Ebrahimi/ab\d{0}e/
3387*22dc650dSSadaf Ebrahimi    abe
3388*22dc650dSSadaf Ebrahimi 0: abe
3389*22dc650dSSadaf Ebrahimi\= Expect no match
3390*22dc650dSSadaf Ebrahimi    ab1e
3391*22dc650dSSadaf EbrahimiNo match
3392*22dc650dSSadaf Ebrahimi
3393*22dc650dSSadaf Ebrahimi/"([^\\"]+|\\.)*"/
3394*22dc650dSSadaf Ebrahimi    the \"quick\" brown fox
3395*22dc650dSSadaf Ebrahimi 0: "quick"
3396*22dc650dSSadaf Ebrahimi    \"the \\\"quick\\\" brown fox\"
3397*22dc650dSSadaf Ebrahimi 0: "the \"quick\" brown fox"
3398*22dc650dSSadaf Ebrahimi
3399*22dc650dSSadaf Ebrahimi/.*?/g,aftertext
3400*22dc650dSSadaf Ebrahimi    abc
3401*22dc650dSSadaf Ebrahimi 0: abc
3402*22dc650dSSadaf Ebrahimi 0+
3403*22dc650dSSadaf Ebrahimi 1: ab
3404*22dc650dSSadaf Ebrahimi 2: a
3405*22dc650dSSadaf Ebrahimi 3:
3406*22dc650dSSadaf Ebrahimi 0:
3407*22dc650dSSadaf Ebrahimi 0+
3408*22dc650dSSadaf Ebrahimi
3409*22dc650dSSadaf Ebrahimi/\b/g,aftertext
3410*22dc650dSSadaf Ebrahimi    abc
3411*22dc650dSSadaf Ebrahimi 0:
3412*22dc650dSSadaf Ebrahimi 0+ abc
3413*22dc650dSSadaf Ebrahimi 0:
3414*22dc650dSSadaf Ebrahimi 0+
3415*22dc650dSSadaf Ebrahimi
3416*22dc650dSSadaf Ebrahimi/\b/g,aftertext
3417*22dc650dSSadaf Ebrahimi    abc
3418*22dc650dSSadaf Ebrahimi 0:
3419*22dc650dSSadaf Ebrahimi 0+ abc
3420*22dc650dSSadaf Ebrahimi 0:
3421*22dc650dSSadaf Ebrahimi 0+
3422*22dc650dSSadaf Ebrahimi
3423*22dc650dSSadaf Ebrahimi//g
3424*22dc650dSSadaf Ebrahimi    abc
3425*22dc650dSSadaf Ebrahimi 0:
3426*22dc650dSSadaf Ebrahimi 0:
3427*22dc650dSSadaf Ebrahimi 0:
3428*22dc650dSSadaf Ebrahimi 0:
3429*22dc650dSSadaf Ebrahimi
3430*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>/is
3431*22dc650dSSadaf Ebrahimi  <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
3432*22dc650dSSadaf Ebrahimi 0: <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
3433*22dc650dSSadaf Ebrahimi
3434*22dc650dSSadaf Ebrahimi/a[^a]b/
3435*22dc650dSSadaf Ebrahimi    acb
3436*22dc650dSSadaf Ebrahimi 0: acb
3437*22dc650dSSadaf Ebrahimi    a\nb
3438*22dc650dSSadaf Ebrahimi 0: a\x0ab
3439*22dc650dSSadaf Ebrahimi
3440*22dc650dSSadaf Ebrahimi/a.b/
3441*22dc650dSSadaf Ebrahimi    acb
3442*22dc650dSSadaf Ebrahimi 0: acb
3443*22dc650dSSadaf Ebrahimi\= Expect no match
3444*22dc650dSSadaf Ebrahimi    a\nb
3445*22dc650dSSadaf EbrahimiNo match
3446*22dc650dSSadaf Ebrahimi
3447*22dc650dSSadaf Ebrahimi/a[^a]b/s
3448*22dc650dSSadaf Ebrahimi    acb
3449*22dc650dSSadaf Ebrahimi 0: acb
3450*22dc650dSSadaf Ebrahimi    a\nb
3451*22dc650dSSadaf Ebrahimi 0: a\x0ab
3452*22dc650dSSadaf Ebrahimi
3453*22dc650dSSadaf Ebrahimi/a.b/s
3454*22dc650dSSadaf Ebrahimi    acb
3455*22dc650dSSadaf Ebrahimi 0: acb
3456*22dc650dSSadaf Ebrahimi    a\nb
3457*22dc650dSSadaf Ebrahimi 0: a\x0ab
3458*22dc650dSSadaf Ebrahimi
3459*22dc650dSSadaf Ebrahimi/^(b+?|a){1,2}?c/
3460*22dc650dSSadaf Ebrahimi    bac
3461*22dc650dSSadaf Ebrahimi 0: bac
3462*22dc650dSSadaf Ebrahimi    bbac
3463*22dc650dSSadaf Ebrahimi 0: bbac
3464*22dc650dSSadaf Ebrahimi    bbbac
3465*22dc650dSSadaf Ebrahimi 0: bbbac
3466*22dc650dSSadaf Ebrahimi    bbbbac
3467*22dc650dSSadaf Ebrahimi 0: bbbbac
3468*22dc650dSSadaf Ebrahimi    bbbbbac
3469*22dc650dSSadaf Ebrahimi 0: bbbbbac
3470*22dc650dSSadaf Ebrahimi
3471*22dc650dSSadaf Ebrahimi/^(b+|a){1,2}?c/
3472*22dc650dSSadaf Ebrahimi    bac
3473*22dc650dSSadaf Ebrahimi 0: bac
3474*22dc650dSSadaf Ebrahimi    bbac
3475*22dc650dSSadaf Ebrahimi 0: bbac
3476*22dc650dSSadaf Ebrahimi    bbbac
3477*22dc650dSSadaf Ebrahimi 0: bbbac
3478*22dc650dSSadaf Ebrahimi    bbbbac
3479*22dc650dSSadaf Ebrahimi 0: bbbbac
3480*22dc650dSSadaf Ebrahimi    bbbbbac
3481*22dc650dSSadaf Ebrahimi 0: bbbbbac
3482*22dc650dSSadaf Ebrahimi
3483*22dc650dSSadaf Ebrahimi/(?!\A)x/m
3484*22dc650dSSadaf Ebrahimi    a\bx\n
3485*22dc650dSSadaf Ebrahimi 0: x
3486*22dc650dSSadaf Ebrahimi\= Expect no match
3487*22dc650dSSadaf Ebrahimi    x\nb\n
3488*22dc650dSSadaf EbrahimiNo match
3489*22dc650dSSadaf Ebrahimi
3490*22dc650dSSadaf Ebrahimi/\x0{ab}/
3491*22dc650dSSadaf Ebrahimi    \0{ab}
3492*22dc650dSSadaf Ebrahimi 0: \x00{ab}
3493*22dc650dSSadaf Ebrahimi
3494*22dc650dSSadaf Ebrahimi/(A|B)*?CD/
3495*22dc650dSSadaf Ebrahimi    CD
3496*22dc650dSSadaf Ebrahimi 0: CD
3497*22dc650dSSadaf Ebrahimi
3498*22dc650dSSadaf Ebrahimi/(A|B)*CD/
3499*22dc650dSSadaf Ebrahimi    CD
3500*22dc650dSSadaf Ebrahimi 0: CD
3501*22dc650dSSadaf Ebrahimi
3502*22dc650dSSadaf Ebrahimi/(?<!bar)foo/
3503*22dc650dSSadaf Ebrahimi    foo
3504*22dc650dSSadaf Ebrahimi 0: foo
3505*22dc650dSSadaf Ebrahimi    catfood
3506*22dc650dSSadaf Ebrahimi 0: foo
3507*22dc650dSSadaf Ebrahimi    arfootle
3508*22dc650dSSadaf Ebrahimi 0: foo
3509*22dc650dSSadaf Ebrahimi    rfoosh
3510*22dc650dSSadaf Ebrahimi 0: foo
3511*22dc650dSSadaf Ebrahimi\= Expect no match
3512*22dc650dSSadaf Ebrahimi    barfoo
3513*22dc650dSSadaf EbrahimiNo match
3514*22dc650dSSadaf Ebrahimi    towbarfoo
3515*22dc650dSSadaf EbrahimiNo match
3516*22dc650dSSadaf Ebrahimi
3517*22dc650dSSadaf Ebrahimi/\w{3}(?<!bar)foo/
3518*22dc650dSSadaf Ebrahimi    catfood
3519*22dc650dSSadaf Ebrahimi 0: catfoo
3520*22dc650dSSadaf Ebrahimi\= Expect no match
3521*22dc650dSSadaf Ebrahimi    foo
3522*22dc650dSSadaf EbrahimiNo match
3523*22dc650dSSadaf Ebrahimi    barfoo
3524*22dc650dSSadaf EbrahimiNo match
3525*22dc650dSSadaf Ebrahimi    towbarfoo
3526*22dc650dSSadaf EbrahimiNo match
3527*22dc650dSSadaf Ebrahimi
3528*22dc650dSSadaf Ebrahimi/(?<=(foo)a)bar/
3529*22dc650dSSadaf Ebrahimi    fooabar
3530*22dc650dSSadaf Ebrahimi 0: bar
3531*22dc650dSSadaf Ebrahimi\= Expect no match
3532*22dc650dSSadaf Ebrahimi    bar
3533*22dc650dSSadaf EbrahimiNo match
3534*22dc650dSSadaf Ebrahimi    foobbar
3535*22dc650dSSadaf EbrahimiNo match
3536*22dc650dSSadaf Ebrahimi
3537*22dc650dSSadaf Ebrahimi/\Aabc\z/m
3538*22dc650dSSadaf Ebrahimi    abc
3539*22dc650dSSadaf Ebrahimi 0: abc
3540*22dc650dSSadaf Ebrahimi\= Expect no match
3541*22dc650dSSadaf Ebrahimi    abc\n
3542*22dc650dSSadaf EbrahimiNo match
3543*22dc650dSSadaf Ebrahimi    qqq\nabc
3544*22dc650dSSadaf EbrahimiNo match
3545*22dc650dSSadaf Ebrahimi    abc\nzzz
3546*22dc650dSSadaf EbrahimiNo match
3547*22dc650dSSadaf Ebrahimi    qqq\nabc\nzzz
3548*22dc650dSSadaf EbrahimiNo match
3549*22dc650dSSadaf Ebrahimi
3550*22dc650dSSadaf Ebrahimi"(?>.*/)foo"
3551*22dc650dSSadaf Ebrahimi\= Expect no match
3552*22dc650dSSadaf Ebrahimi    /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
3553*22dc650dSSadaf EbrahimiNo match
3554*22dc650dSSadaf Ebrahimi
3555*22dc650dSSadaf Ebrahimi"(?>.*/)foo"
3556*22dc650dSSadaf Ebrahimi    /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
3557*22dc650dSSadaf Ebrahimi 0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
3558*22dc650dSSadaf Ebrahimi
3559*22dc650dSSadaf Ebrahimi/(?>(\.\d\d[1-9]?))\d+/
3560*22dc650dSSadaf Ebrahimi    1.230003938
3561*22dc650dSSadaf Ebrahimi 0: .230003938
3562*22dc650dSSadaf Ebrahimi    1.875000282
3563*22dc650dSSadaf Ebrahimi 0: .875000282
3564*22dc650dSSadaf Ebrahimi\= Expect no match
3565*22dc650dSSadaf Ebrahimi    1.235
3566*22dc650dSSadaf EbrahimiNo match
3567*22dc650dSSadaf Ebrahimi
3568*22dc650dSSadaf Ebrahimi/^((?>\w+)|(?>\s+))*$/
3569*22dc650dSSadaf Ebrahimi    now is the time for all good men to come to the aid of the party
3570*22dc650dSSadaf Ebrahimi 0: now is the time for all good men to come to the aid of the party
3571*22dc650dSSadaf Ebrahimi\= Expect no match
3572*22dc650dSSadaf Ebrahimi    this is not a line with only words and spaces!
3573*22dc650dSSadaf EbrahimiNo match
3574*22dc650dSSadaf Ebrahimi
3575*22dc650dSSadaf Ebrahimi/(\d+)(\w)/
3576*22dc650dSSadaf Ebrahimi    12345a
3577*22dc650dSSadaf Ebrahimi 0: 12345a
3578*22dc650dSSadaf Ebrahimi 1: 12345
3579*22dc650dSSadaf Ebrahimi 2: 1234
3580*22dc650dSSadaf Ebrahimi 3: 123
3581*22dc650dSSadaf Ebrahimi 4: 12
3582*22dc650dSSadaf Ebrahimi    12345+
3583*22dc650dSSadaf Ebrahimi 0: 12345
3584*22dc650dSSadaf Ebrahimi 1: 1234
3585*22dc650dSSadaf Ebrahimi 2: 123
3586*22dc650dSSadaf Ebrahimi 3: 12
3587*22dc650dSSadaf Ebrahimi
3588*22dc650dSSadaf Ebrahimi/((?>\d+))(\w)/
3589*22dc650dSSadaf Ebrahimi    12345a
3590*22dc650dSSadaf Ebrahimi 0: 12345a
3591*22dc650dSSadaf Ebrahimi\= Expect no match
3592*22dc650dSSadaf Ebrahimi    12345+
3593*22dc650dSSadaf EbrahimiNo match
3594*22dc650dSSadaf Ebrahimi
3595*22dc650dSSadaf Ebrahimi/(?>a+)b/
3596*22dc650dSSadaf Ebrahimi    aaab
3597*22dc650dSSadaf Ebrahimi 0: aaab
3598*22dc650dSSadaf Ebrahimi
3599*22dc650dSSadaf Ebrahimi/((?>a+)b)/
3600*22dc650dSSadaf Ebrahimi    aaab
3601*22dc650dSSadaf Ebrahimi 0: aaab
3602*22dc650dSSadaf Ebrahimi
3603*22dc650dSSadaf Ebrahimi/(?>(a+))b/
3604*22dc650dSSadaf Ebrahimi    aaab
3605*22dc650dSSadaf Ebrahimi 0: aaab
3606*22dc650dSSadaf Ebrahimi
3607*22dc650dSSadaf Ebrahimi/(?>b)+/
3608*22dc650dSSadaf Ebrahimi    aaabbbccc
3609*22dc650dSSadaf Ebrahimi 0: bbb
3610*22dc650dSSadaf Ebrahimi 1: bb
3611*22dc650dSSadaf Ebrahimi 2: b
3612*22dc650dSSadaf Ebrahimi
3613*22dc650dSSadaf Ebrahimi/(?>a+|b+|c+)*c/
3614*22dc650dSSadaf Ebrahimi    aaabbbbccccd
3615*22dc650dSSadaf Ebrahimi 0: aaabbbbcccc
3616*22dc650dSSadaf Ebrahimi 1: aaabbbbc
3617*22dc650dSSadaf Ebrahimi
3618*22dc650dSSadaf Ebrahimi/(a+|b+|c+)*c/
3619*22dc650dSSadaf Ebrahimi    aaabbbbccccd
3620*22dc650dSSadaf Ebrahimi 0: aaabbbbcccc
3621*22dc650dSSadaf Ebrahimi 1: aaabbbbccc
3622*22dc650dSSadaf Ebrahimi 2: aaabbbbcc
3623*22dc650dSSadaf Ebrahimi 3: aaabbbbc
3624*22dc650dSSadaf Ebrahimi
3625*22dc650dSSadaf Ebrahimi/((?>[^()]+)|\([^()]*\))+/
3626*22dc650dSSadaf Ebrahimi    ((abc(ade)ufh()()x
3627*22dc650dSSadaf Ebrahimi 0: abc(ade)ufh()()x
3628*22dc650dSSadaf Ebrahimi 1: abc(ade)ufh()()
3629*22dc650dSSadaf Ebrahimi 2: abc(ade)ufh()
3630*22dc650dSSadaf Ebrahimi 3: abc(ade)ufh
3631*22dc650dSSadaf Ebrahimi 4: abc(ade)
3632*22dc650dSSadaf Ebrahimi 5: abc
3633*22dc650dSSadaf Ebrahimi
3634*22dc650dSSadaf Ebrahimi/\(((?>[^()]+)|\([^()]+\))+\)/
3635*22dc650dSSadaf Ebrahimi    (abc)
3636*22dc650dSSadaf Ebrahimi 0: (abc)
3637*22dc650dSSadaf Ebrahimi    (abc(def)xyz)
3638*22dc650dSSadaf Ebrahimi 0: (abc(def)xyz)
3639*22dc650dSSadaf Ebrahimi\= Expect no match
3640*22dc650dSSadaf Ebrahimi    ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3641*22dc650dSSadaf EbrahimiNo match
3642*22dc650dSSadaf Ebrahimi
3643*22dc650dSSadaf Ebrahimi/a(?-i)b/i
3644*22dc650dSSadaf Ebrahimi    ab
3645*22dc650dSSadaf Ebrahimi 0: ab
3646*22dc650dSSadaf Ebrahimi    Ab
3647*22dc650dSSadaf Ebrahimi 0: Ab
3648*22dc650dSSadaf Ebrahimi\= Expect no match
3649*22dc650dSSadaf Ebrahimi    aB
3650*22dc650dSSadaf EbrahimiNo match
3651*22dc650dSSadaf Ebrahimi    AB
3652*22dc650dSSadaf EbrahimiNo match
3653*22dc650dSSadaf Ebrahimi
3654*22dc650dSSadaf Ebrahimi/(a (?x)b c)d e/
3655*22dc650dSSadaf Ebrahimi    a bcd e
3656*22dc650dSSadaf Ebrahimi 0: a bcd e
3657*22dc650dSSadaf Ebrahimi\= Expect no match
3658*22dc650dSSadaf Ebrahimi    a b cd e
3659*22dc650dSSadaf EbrahimiNo match
3660*22dc650dSSadaf Ebrahimi    abcd e
3661*22dc650dSSadaf EbrahimiNo match
3662*22dc650dSSadaf Ebrahimi    a bcde
3663*22dc650dSSadaf EbrahimiNo match
3664*22dc650dSSadaf Ebrahimi
3665*22dc650dSSadaf Ebrahimi/(a b(?x)c d (?-x)e f)/
3666*22dc650dSSadaf Ebrahimi    a bcde f
3667*22dc650dSSadaf Ebrahimi 0: a bcde f
3668*22dc650dSSadaf Ebrahimi\= Expect no match
3669*22dc650dSSadaf Ebrahimi    abcdef
3670*22dc650dSSadaf EbrahimiNo match
3671*22dc650dSSadaf Ebrahimi
3672*22dc650dSSadaf Ebrahimi/(a(?i)b)c/
3673*22dc650dSSadaf Ebrahimi    abc
3674*22dc650dSSadaf Ebrahimi 0: abc
3675*22dc650dSSadaf Ebrahimi    aBc
3676*22dc650dSSadaf Ebrahimi 0: aBc
3677*22dc650dSSadaf Ebrahimi\= Expect no match
3678*22dc650dSSadaf Ebrahimi    abC
3679*22dc650dSSadaf EbrahimiNo match
3680*22dc650dSSadaf Ebrahimi    aBC
3681*22dc650dSSadaf EbrahimiNo match
3682*22dc650dSSadaf Ebrahimi    Abc
3683*22dc650dSSadaf EbrahimiNo match
3684*22dc650dSSadaf Ebrahimi    ABc
3685*22dc650dSSadaf EbrahimiNo match
3686*22dc650dSSadaf Ebrahimi    ABC
3687*22dc650dSSadaf EbrahimiNo match
3688*22dc650dSSadaf Ebrahimi    AbC
3689*22dc650dSSadaf EbrahimiNo match
3690*22dc650dSSadaf Ebrahimi
3691*22dc650dSSadaf Ebrahimi/a(?i:b)c/
3692*22dc650dSSadaf Ebrahimi    abc
3693*22dc650dSSadaf Ebrahimi 0: abc
3694*22dc650dSSadaf Ebrahimi    aBc
3695*22dc650dSSadaf Ebrahimi 0: aBc
3696*22dc650dSSadaf Ebrahimi\= Expect no match
3697*22dc650dSSadaf Ebrahimi    ABC
3698*22dc650dSSadaf EbrahimiNo match
3699*22dc650dSSadaf Ebrahimi    abC
3700*22dc650dSSadaf EbrahimiNo match
3701*22dc650dSSadaf Ebrahimi    aBC
3702*22dc650dSSadaf EbrahimiNo match
3703*22dc650dSSadaf Ebrahimi
3704*22dc650dSSadaf Ebrahimi/a(?i:b)*c/
3705*22dc650dSSadaf Ebrahimi    aBc
3706*22dc650dSSadaf Ebrahimi 0: aBc
3707*22dc650dSSadaf Ebrahimi    aBBc
3708*22dc650dSSadaf Ebrahimi 0: aBBc
3709*22dc650dSSadaf Ebrahimi\= Expect no match
3710*22dc650dSSadaf Ebrahimi    aBC
3711*22dc650dSSadaf EbrahimiNo match
3712*22dc650dSSadaf Ebrahimi    aBBC
3713*22dc650dSSadaf EbrahimiNo match
3714*22dc650dSSadaf Ebrahimi
3715*22dc650dSSadaf Ebrahimi/a(?=b(?i)c)\w\wd/
3716*22dc650dSSadaf Ebrahimi    abcd
3717*22dc650dSSadaf Ebrahimi 0: abcd
3718*22dc650dSSadaf Ebrahimi    abCd
3719*22dc650dSSadaf Ebrahimi 0: abCd
3720*22dc650dSSadaf Ebrahimi\= Expect no match
3721*22dc650dSSadaf Ebrahimi    aBCd
3722*22dc650dSSadaf EbrahimiNo match
3723*22dc650dSSadaf Ebrahimi    abcD
3724*22dc650dSSadaf EbrahimiNo match
3725*22dc650dSSadaf Ebrahimi
3726*22dc650dSSadaf Ebrahimi/(?s-i:more.*than).*million/i
3727*22dc650dSSadaf Ebrahimi    more than million
3728*22dc650dSSadaf Ebrahimi 0: more than million
3729*22dc650dSSadaf Ebrahimi    more than MILLION
3730*22dc650dSSadaf Ebrahimi 0: more than MILLION
3731*22dc650dSSadaf Ebrahimi    more \n than Million
3732*22dc650dSSadaf Ebrahimi 0: more \x0a than Million
3733*22dc650dSSadaf Ebrahimi\= Expect no match
3734*22dc650dSSadaf Ebrahimi    MORE THAN MILLION
3735*22dc650dSSadaf EbrahimiNo match
3736*22dc650dSSadaf Ebrahimi    more \n than \n million
3737*22dc650dSSadaf EbrahimiNo match
3738*22dc650dSSadaf Ebrahimi
3739*22dc650dSSadaf Ebrahimi/(?:(?s-i)more.*than).*million/i
3740*22dc650dSSadaf Ebrahimi    more than million
3741*22dc650dSSadaf Ebrahimi 0: more than million
3742*22dc650dSSadaf Ebrahimi    more than MILLION
3743*22dc650dSSadaf Ebrahimi 0: more than MILLION
3744*22dc650dSSadaf Ebrahimi    more \n than Million
3745*22dc650dSSadaf Ebrahimi 0: more \x0a than Million
3746*22dc650dSSadaf Ebrahimi\= Expect no match
3747*22dc650dSSadaf Ebrahimi    MORE THAN MILLION
3748*22dc650dSSadaf EbrahimiNo match
3749*22dc650dSSadaf Ebrahimi    more \n than \n million
3750*22dc650dSSadaf EbrahimiNo match
3751*22dc650dSSadaf Ebrahimi
3752*22dc650dSSadaf Ebrahimi/(?>a(?i)b+)+c/
3753*22dc650dSSadaf Ebrahimi    abc
3754*22dc650dSSadaf Ebrahimi 0: abc
3755*22dc650dSSadaf Ebrahimi    aBbc
3756*22dc650dSSadaf Ebrahimi 0: aBbc
3757*22dc650dSSadaf Ebrahimi    aBBc
3758*22dc650dSSadaf Ebrahimi 0: aBBc
3759*22dc650dSSadaf Ebrahimi\= Expect no match
3760*22dc650dSSadaf Ebrahimi    Abc
3761*22dc650dSSadaf EbrahimiNo match
3762*22dc650dSSadaf Ebrahimi    abAb
3763*22dc650dSSadaf EbrahimiNo match
3764*22dc650dSSadaf Ebrahimi    abbC
3765*22dc650dSSadaf EbrahimiNo match
3766*22dc650dSSadaf Ebrahimi
3767*22dc650dSSadaf Ebrahimi/(?=a(?i)b)\w\wc/
3768*22dc650dSSadaf Ebrahimi    abc
3769*22dc650dSSadaf Ebrahimi 0: abc
3770*22dc650dSSadaf Ebrahimi    aBc
3771*22dc650dSSadaf Ebrahimi 0: aBc
3772*22dc650dSSadaf Ebrahimi\= Expect no match
3773*22dc650dSSadaf Ebrahimi    Ab
3774*22dc650dSSadaf EbrahimiNo match
3775*22dc650dSSadaf Ebrahimi    abC
3776*22dc650dSSadaf EbrahimiNo match
3777*22dc650dSSadaf Ebrahimi    aBC
3778*22dc650dSSadaf EbrahimiNo match
3779*22dc650dSSadaf Ebrahimi
3780*22dc650dSSadaf Ebrahimi/(?<=a(?i)b)(\w\w)c/
3781*22dc650dSSadaf Ebrahimi    abxxc
3782*22dc650dSSadaf Ebrahimi 0: xxc
3783*22dc650dSSadaf Ebrahimi    aBxxc
3784*22dc650dSSadaf Ebrahimi 0: xxc
3785*22dc650dSSadaf Ebrahimi\= Expect no match
3786*22dc650dSSadaf Ebrahimi    Abxxc
3787*22dc650dSSadaf EbrahimiNo match
3788*22dc650dSSadaf Ebrahimi    ABxxc
3789*22dc650dSSadaf EbrahimiNo match
3790*22dc650dSSadaf Ebrahimi    abxxC
3791*22dc650dSSadaf EbrahimiNo match
3792*22dc650dSSadaf Ebrahimi
3793*22dc650dSSadaf Ebrahimi/^(?(?=abc)\w{3}:|\d\d)$/
3794*22dc650dSSadaf Ebrahimi    abc:
3795*22dc650dSSadaf Ebrahimi 0: abc:
3796*22dc650dSSadaf Ebrahimi    12
3797*22dc650dSSadaf Ebrahimi 0: 12
3798*22dc650dSSadaf Ebrahimi\= Expect no match
3799*22dc650dSSadaf Ebrahimi    123
3800*22dc650dSSadaf EbrahimiNo match
3801*22dc650dSSadaf Ebrahimi    xyz
3802*22dc650dSSadaf EbrahimiNo match
3803*22dc650dSSadaf Ebrahimi
3804*22dc650dSSadaf Ebrahimi/^(?(?!abc)\d\d|\w{3}:)$/
3805*22dc650dSSadaf Ebrahimi    abc:
3806*22dc650dSSadaf Ebrahimi 0: abc:
3807*22dc650dSSadaf Ebrahimi    12
3808*22dc650dSSadaf Ebrahimi 0: 12
3809*22dc650dSSadaf Ebrahimi\= Expect no match
3810*22dc650dSSadaf Ebrahimi    123
3811*22dc650dSSadaf EbrahimiNo match
3812*22dc650dSSadaf Ebrahimi    xyz
3813*22dc650dSSadaf EbrahimiNo match
3814*22dc650dSSadaf Ebrahimi
3815*22dc650dSSadaf Ebrahimi/(?(?<=foo)bar|cat)/
3816*22dc650dSSadaf Ebrahimi    foobar
3817*22dc650dSSadaf Ebrahimi 0: bar
3818*22dc650dSSadaf Ebrahimi    cat
3819*22dc650dSSadaf Ebrahimi 0: cat
3820*22dc650dSSadaf Ebrahimi    fcat
3821*22dc650dSSadaf Ebrahimi 0: cat
3822*22dc650dSSadaf Ebrahimi    focat
3823*22dc650dSSadaf Ebrahimi 0: cat
3824*22dc650dSSadaf Ebrahimi\= Expect no match
3825*22dc650dSSadaf Ebrahimi    foocat
3826*22dc650dSSadaf EbrahimiNo match
3827*22dc650dSSadaf Ebrahimi
3828*22dc650dSSadaf Ebrahimi/(?(?<!foo)cat|bar)/
3829*22dc650dSSadaf Ebrahimi    foobar
3830*22dc650dSSadaf Ebrahimi 0: bar
3831*22dc650dSSadaf Ebrahimi    cat
3832*22dc650dSSadaf Ebrahimi 0: cat
3833*22dc650dSSadaf Ebrahimi    fcat
3834*22dc650dSSadaf Ebrahimi 0: cat
3835*22dc650dSSadaf Ebrahimi    focat
3836*22dc650dSSadaf Ebrahimi 0: cat
3837*22dc650dSSadaf Ebrahimi\= Expect no match
3838*22dc650dSSadaf Ebrahimi    foocat
3839*22dc650dSSadaf EbrahimiNo match
3840*22dc650dSSadaf Ebrahimi
3841*22dc650dSSadaf Ebrahimi/(?>a*)*/
3842*22dc650dSSadaf Ebrahimi    a
3843*22dc650dSSadaf Ebrahimi 0: a
3844*22dc650dSSadaf Ebrahimi 1:
3845*22dc650dSSadaf Ebrahimi    aa
3846*22dc650dSSadaf Ebrahimi 0: aa
3847*22dc650dSSadaf Ebrahimi 1:
3848*22dc650dSSadaf Ebrahimi    aaaa
3849*22dc650dSSadaf Ebrahimi 0: aaaa
3850*22dc650dSSadaf Ebrahimi 1:
3851*22dc650dSSadaf Ebrahimi
3852*22dc650dSSadaf Ebrahimi/(abc|)+/
3853*22dc650dSSadaf Ebrahimi    abc
3854*22dc650dSSadaf Ebrahimi 0: abc
3855*22dc650dSSadaf Ebrahimi 1:
3856*22dc650dSSadaf Ebrahimi    abcabc
3857*22dc650dSSadaf Ebrahimi 0: abcabc
3858*22dc650dSSadaf Ebrahimi 1: abc
3859*22dc650dSSadaf Ebrahimi 2:
3860*22dc650dSSadaf Ebrahimi    abcabcabc
3861*22dc650dSSadaf Ebrahimi 0: abcabcabc
3862*22dc650dSSadaf Ebrahimi 1: abcabc
3863*22dc650dSSadaf Ebrahimi 2: abc
3864*22dc650dSSadaf Ebrahimi 3:
3865*22dc650dSSadaf Ebrahimi    xyz
3866*22dc650dSSadaf Ebrahimi 0:
3867*22dc650dSSadaf Ebrahimi
3868*22dc650dSSadaf Ebrahimi/([a]*)*/
3869*22dc650dSSadaf Ebrahimi    a
3870*22dc650dSSadaf Ebrahimi 0: a
3871*22dc650dSSadaf Ebrahimi 1:
3872*22dc650dSSadaf Ebrahimi    aaaaa
3873*22dc650dSSadaf Ebrahimi 0: aaaaa
3874*22dc650dSSadaf Ebrahimi 1: aaaa
3875*22dc650dSSadaf Ebrahimi 2: aaa
3876*22dc650dSSadaf Ebrahimi 3: aa
3877*22dc650dSSadaf Ebrahimi 4: a
3878*22dc650dSSadaf Ebrahimi 5:
3879*22dc650dSSadaf Ebrahimi
3880*22dc650dSSadaf Ebrahimi/([ab]*)*/
3881*22dc650dSSadaf Ebrahimi    a
3882*22dc650dSSadaf Ebrahimi 0: a
3883*22dc650dSSadaf Ebrahimi 1:
3884*22dc650dSSadaf Ebrahimi    b
3885*22dc650dSSadaf Ebrahimi 0: b
3886*22dc650dSSadaf Ebrahimi 1:
3887*22dc650dSSadaf Ebrahimi    ababab
3888*22dc650dSSadaf Ebrahimi 0: ababab
3889*22dc650dSSadaf Ebrahimi 1: ababa
3890*22dc650dSSadaf Ebrahimi 2: abab
3891*22dc650dSSadaf Ebrahimi 3: aba
3892*22dc650dSSadaf Ebrahimi 4: ab
3893*22dc650dSSadaf Ebrahimi 5: a
3894*22dc650dSSadaf Ebrahimi 6:
3895*22dc650dSSadaf Ebrahimi    aaaabcde
3896*22dc650dSSadaf Ebrahimi 0: aaaab
3897*22dc650dSSadaf Ebrahimi 1: aaaa
3898*22dc650dSSadaf Ebrahimi 2: aaa
3899*22dc650dSSadaf Ebrahimi 3: aa
3900*22dc650dSSadaf Ebrahimi 4: a
3901*22dc650dSSadaf Ebrahimi 5:
3902*22dc650dSSadaf Ebrahimi    bbbb
3903*22dc650dSSadaf Ebrahimi 0: bbbb
3904*22dc650dSSadaf Ebrahimi 1: bbb
3905*22dc650dSSadaf Ebrahimi 2: bb
3906*22dc650dSSadaf Ebrahimi 3: b
3907*22dc650dSSadaf Ebrahimi 4:
3908*22dc650dSSadaf Ebrahimi
3909*22dc650dSSadaf Ebrahimi/([^a]*)*/
3910*22dc650dSSadaf Ebrahimi    b
3911*22dc650dSSadaf Ebrahimi 0: b
3912*22dc650dSSadaf Ebrahimi 1:
3913*22dc650dSSadaf Ebrahimi    bbbb
3914*22dc650dSSadaf Ebrahimi 0: bbbb
3915*22dc650dSSadaf Ebrahimi 1: bbb
3916*22dc650dSSadaf Ebrahimi 2: bb
3917*22dc650dSSadaf Ebrahimi 3: b
3918*22dc650dSSadaf Ebrahimi 4:
3919*22dc650dSSadaf Ebrahimi    aaa
3920*22dc650dSSadaf Ebrahimi 0:
3921*22dc650dSSadaf Ebrahimi
3922*22dc650dSSadaf Ebrahimi/([^ab]*)*/
3923*22dc650dSSadaf Ebrahimi    cccc
3924*22dc650dSSadaf Ebrahimi 0: cccc
3925*22dc650dSSadaf Ebrahimi 1: ccc
3926*22dc650dSSadaf Ebrahimi 2: cc
3927*22dc650dSSadaf Ebrahimi 3: c
3928*22dc650dSSadaf Ebrahimi 4:
3929*22dc650dSSadaf Ebrahimi    abab
3930*22dc650dSSadaf Ebrahimi 0:
3931*22dc650dSSadaf Ebrahimi
3932*22dc650dSSadaf Ebrahimi/([a]*?)*/
3933*22dc650dSSadaf Ebrahimi    a
3934*22dc650dSSadaf Ebrahimi 0: a
3935*22dc650dSSadaf Ebrahimi 1:
3936*22dc650dSSadaf Ebrahimi    aaaa
3937*22dc650dSSadaf Ebrahimi 0: aaaa
3938*22dc650dSSadaf Ebrahimi 1: aaa
3939*22dc650dSSadaf Ebrahimi 2: aa
3940*22dc650dSSadaf Ebrahimi 3: a
3941*22dc650dSSadaf Ebrahimi 4:
3942*22dc650dSSadaf Ebrahimi
3943*22dc650dSSadaf Ebrahimi/([ab]*?)*/
3944*22dc650dSSadaf Ebrahimi    a
3945*22dc650dSSadaf Ebrahimi 0: a
3946*22dc650dSSadaf Ebrahimi 1:
3947*22dc650dSSadaf Ebrahimi    b
3948*22dc650dSSadaf Ebrahimi 0: b
3949*22dc650dSSadaf Ebrahimi 1:
3950*22dc650dSSadaf Ebrahimi    abab
3951*22dc650dSSadaf Ebrahimi 0: abab
3952*22dc650dSSadaf Ebrahimi 1: aba
3953*22dc650dSSadaf Ebrahimi 2: ab
3954*22dc650dSSadaf Ebrahimi 3: a
3955*22dc650dSSadaf Ebrahimi 4:
3956*22dc650dSSadaf Ebrahimi    baba
3957*22dc650dSSadaf Ebrahimi 0: baba
3958*22dc650dSSadaf Ebrahimi 1: bab
3959*22dc650dSSadaf Ebrahimi 2: ba
3960*22dc650dSSadaf Ebrahimi 3: b
3961*22dc650dSSadaf Ebrahimi 4:
3962*22dc650dSSadaf Ebrahimi
3963*22dc650dSSadaf Ebrahimi/([^a]*?)*/
3964*22dc650dSSadaf Ebrahimi    b
3965*22dc650dSSadaf Ebrahimi 0: b
3966*22dc650dSSadaf Ebrahimi 1:
3967*22dc650dSSadaf Ebrahimi    bbbb
3968*22dc650dSSadaf Ebrahimi 0: bbbb
3969*22dc650dSSadaf Ebrahimi 1: bbb
3970*22dc650dSSadaf Ebrahimi 2: bb
3971*22dc650dSSadaf Ebrahimi 3: b
3972*22dc650dSSadaf Ebrahimi 4:
3973*22dc650dSSadaf Ebrahimi    aaa
3974*22dc650dSSadaf Ebrahimi 0:
3975*22dc650dSSadaf Ebrahimi
3976*22dc650dSSadaf Ebrahimi/([^ab]*?)*/
3977*22dc650dSSadaf Ebrahimi    c
3978*22dc650dSSadaf Ebrahimi 0: c
3979*22dc650dSSadaf Ebrahimi 1:
3980*22dc650dSSadaf Ebrahimi    cccc
3981*22dc650dSSadaf Ebrahimi 0: cccc
3982*22dc650dSSadaf Ebrahimi 1: ccc
3983*22dc650dSSadaf Ebrahimi 2: cc
3984*22dc650dSSadaf Ebrahimi 3: c
3985*22dc650dSSadaf Ebrahimi 4:
3986*22dc650dSSadaf Ebrahimi    baba
3987*22dc650dSSadaf Ebrahimi 0:
3988*22dc650dSSadaf Ebrahimi
3989*22dc650dSSadaf Ebrahimi/(?>a*)*/
3990*22dc650dSSadaf Ebrahimi    a
3991*22dc650dSSadaf Ebrahimi 0: a
3992*22dc650dSSadaf Ebrahimi 1:
3993*22dc650dSSadaf Ebrahimi    aaabcde
3994*22dc650dSSadaf Ebrahimi 0: aaa
3995*22dc650dSSadaf Ebrahimi 1:
3996*22dc650dSSadaf Ebrahimi
3997*22dc650dSSadaf Ebrahimi/((?>a*))*/
3998*22dc650dSSadaf Ebrahimi    aaaaa
3999*22dc650dSSadaf Ebrahimi 0: aaaaa
4000*22dc650dSSadaf Ebrahimi 1:
4001*22dc650dSSadaf Ebrahimi    aabbaa
4002*22dc650dSSadaf Ebrahimi 0: aa
4003*22dc650dSSadaf Ebrahimi 1:
4004*22dc650dSSadaf Ebrahimi
4005*22dc650dSSadaf Ebrahimi/((?>a*?))*/
4006*22dc650dSSadaf Ebrahimi    aaaaa
4007*22dc650dSSadaf Ebrahimi 0: aaaaa
4008*22dc650dSSadaf Ebrahimi 1:
4009*22dc650dSSadaf Ebrahimi    aabbaa
4010*22dc650dSSadaf Ebrahimi 0: aa
4011*22dc650dSSadaf Ebrahimi 1:
4012*22dc650dSSadaf Ebrahimi
4013*22dc650dSSadaf Ebrahimi/(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /x
4014*22dc650dSSadaf Ebrahimi    12-sep-98
4015*22dc650dSSadaf Ebrahimi 0: 12-sep-98
4016*22dc650dSSadaf Ebrahimi    12-09-98
4017*22dc650dSSadaf Ebrahimi 0: 12-09-98
4018*22dc650dSSadaf Ebrahimi\= Expect no match
4019*22dc650dSSadaf Ebrahimi    sep-12-98
4020*22dc650dSSadaf EbrahimiNo match
4021*22dc650dSSadaf Ebrahimi
4022*22dc650dSSadaf Ebrahimi/(?i:saturday|sunday)/
4023*22dc650dSSadaf Ebrahimi    saturday
4024*22dc650dSSadaf Ebrahimi 0: saturday
4025*22dc650dSSadaf Ebrahimi    sunday
4026*22dc650dSSadaf Ebrahimi 0: sunday
4027*22dc650dSSadaf Ebrahimi    Saturday
4028*22dc650dSSadaf Ebrahimi 0: Saturday
4029*22dc650dSSadaf Ebrahimi    Sunday
4030*22dc650dSSadaf Ebrahimi 0: Sunday
4031*22dc650dSSadaf Ebrahimi    SATURDAY
4032*22dc650dSSadaf Ebrahimi 0: SATURDAY
4033*22dc650dSSadaf Ebrahimi    SUNDAY
4034*22dc650dSSadaf Ebrahimi 0: SUNDAY
4035*22dc650dSSadaf Ebrahimi    SunDay
4036*22dc650dSSadaf Ebrahimi 0: SunDay
4037*22dc650dSSadaf Ebrahimi
4038*22dc650dSSadaf Ebrahimi/(a(?i)bc|BB)x/
4039*22dc650dSSadaf Ebrahimi    abcx
4040*22dc650dSSadaf Ebrahimi 0: abcx
4041*22dc650dSSadaf Ebrahimi    aBCx
4042*22dc650dSSadaf Ebrahimi 0: aBCx
4043*22dc650dSSadaf Ebrahimi    bbx
4044*22dc650dSSadaf Ebrahimi 0: bbx
4045*22dc650dSSadaf Ebrahimi    BBx
4046*22dc650dSSadaf Ebrahimi 0: BBx
4047*22dc650dSSadaf Ebrahimi\= Expect no match
4048*22dc650dSSadaf Ebrahimi    abcX
4049*22dc650dSSadaf EbrahimiNo match
4050*22dc650dSSadaf Ebrahimi    aBCX
4051*22dc650dSSadaf EbrahimiNo match
4052*22dc650dSSadaf Ebrahimi    bbX
4053*22dc650dSSadaf EbrahimiNo match
4054*22dc650dSSadaf Ebrahimi    BBX
4055*22dc650dSSadaf EbrahimiNo match
4056*22dc650dSSadaf Ebrahimi
4057*22dc650dSSadaf Ebrahimi/^([ab](?i)[cd]|[ef])/
4058*22dc650dSSadaf Ebrahimi    ac
4059*22dc650dSSadaf Ebrahimi 0: ac
4060*22dc650dSSadaf Ebrahimi    aC
4061*22dc650dSSadaf Ebrahimi 0: aC
4062*22dc650dSSadaf Ebrahimi    bD
4063*22dc650dSSadaf Ebrahimi 0: bD
4064*22dc650dSSadaf Ebrahimi    elephant
4065*22dc650dSSadaf Ebrahimi 0: e
4066*22dc650dSSadaf Ebrahimi    Europe
4067*22dc650dSSadaf Ebrahimi 0: E
4068*22dc650dSSadaf Ebrahimi    frog
4069*22dc650dSSadaf Ebrahimi 0: f
4070*22dc650dSSadaf Ebrahimi    France
4071*22dc650dSSadaf Ebrahimi 0: F
4072*22dc650dSSadaf Ebrahimi\= Expect no match
4073*22dc650dSSadaf Ebrahimi    Africa
4074*22dc650dSSadaf EbrahimiNo match
4075*22dc650dSSadaf Ebrahimi
4076*22dc650dSSadaf Ebrahimi/^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
4077*22dc650dSSadaf Ebrahimi    ab
4078*22dc650dSSadaf Ebrahimi 0: ab
4079*22dc650dSSadaf Ebrahimi    aBd
4080*22dc650dSSadaf Ebrahimi 0: aBd
4081*22dc650dSSadaf Ebrahimi    xy
4082*22dc650dSSadaf Ebrahimi 0: xy
4083*22dc650dSSadaf Ebrahimi    xY
4084*22dc650dSSadaf Ebrahimi 0: xY
4085*22dc650dSSadaf Ebrahimi    zebra
4086*22dc650dSSadaf Ebrahimi 0: z
4087*22dc650dSSadaf Ebrahimi    Zambesi
4088*22dc650dSSadaf Ebrahimi 0: Z
4089*22dc650dSSadaf Ebrahimi\= Expect no match
4090*22dc650dSSadaf Ebrahimi    aCD
4091*22dc650dSSadaf EbrahimiNo match
4092*22dc650dSSadaf Ebrahimi    XY
4093*22dc650dSSadaf EbrahimiNo match
4094*22dc650dSSadaf Ebrahimi
4095*22dc650dSSadaf Ebrahimi/(?<=foo\n)^bar/m
4096*22dc650dSSadaf Ebrahimi    foo\nbar
4097*22dc650dSSadaf Ebrahimi 0: bar
4098*22dc650dSSadaf Ebrahimi\= Expect no match
4099*22dc650dSSadaf Ebrahimi    bar
4100*22dc650dSSadaf EbrahimiNo match
4101*22dc650dSSadaf Ebrahimi    baz\nbar
4102*22dc650dSSadaf EbrahimiNo match
4103*22dc650dSSadaf Ebrahimi
4104*22dc650dSSadaf Ebrahimi/(?<=(?<!foo)bar)baz/
4105*22dc650dSSadaf Ebrahimi    barbaz
4106*22dc650dSSadaf Ebrahimi 0: baz
4107*22dc650dSSadaf Ebrahimi    barbarbaz
4108*22dc650dSSadaf Ebrahimi 0: baz
4109*22dc650dSSadaf Ebrahimi    koobarbaz
4110*22dc650dSSadaf Ebrahimi 0: baz
4111*22dc650dSSadaf Ebrahimi\= Expect no match
4112*22dc650dSSadaf Ebrahimi    baz
4113*22dc650dSSadaf EbrahimiNo match
4114*22dc650dSSadaf Ebrahimi    foobarbaz
4115*22dc650dSSadaf EbrahimiNo match
4116*22dc650dSSadaf Ebrahimi
4117*22dc650dSSadaf Ebrahimi# The following tests are taken from the Perl 5.005 test suite; some of them
4118*22dc650dSSadaf Ebrahimi# are compatible with 5.004, but I'd rather not have to sort them out.
4119*22dc650dSSadaf Ebrahimi
4120*22dc650dSSadaf Ebrahimi/abc/
4121*22dc650dSSadaf Ebrahimi    abc
4122*22dc650dSSadaf Ebrahimi 0: abc
4123*22dc650dSSadaf Ebrahimi    xabcy
4124*22dc650dSSadaf Ebrahimi 0: abc
4125*22dc650dSSadaf Ebrahimi    ababc
4126*22dc650dSSadaf Ebrahimi 0: abc
4127*22dc650dSSadaf Ebrahimi\= Expect no match
4128*22dc650dSSadaf Ebrahimi    xbc
4129*22dc650dSSadaf EbrahimiNo match
4130*22dc650dSSadaf Ebrahimi    axc
4131*22dc650dSSadaf EbrahimiNo match
4132*22dc650dSSadaf Ebrahimi    abx
4133*22dc650dSSadaf EbrahimiNo match
4134*22dc650dSSadaf Ebrahimi
4135*22dc650dSSadaf Ebrahimi/ab*c/
4136*22dc650dSSadaf Ebrahimi    abc
4137*22dc650dSSadaf Ebrahimi 0: abc
4138*22dc650dSSadaf Ebrahimi
4139*22dc650dSSadaf Ebrahimi/ab*bc/
4140*22dc650dSSadaf Ebrahimi    abc
4141*22dc650dSSadaf Ebrahimi 0: abc
4142*22dc650dSSadaf Ebrahimi    abbc
4143*22dc650dSSadaf Ebrahimi 0: abbc
4144*22dc650dSSadaf Ebrahimi    abbbbc
4145*22dc650dSSadaf Ebrahimi 0: abbbbc
4146*22dc650dSSadaf Ebrahimi
4147*22dc650dSSadaf Ebrahimi/.{1}/
4148*22dc650dSSadaf Ebrahimi    abbbbc
4149*22dc650dSSadaf Ebrahimi 0: a
4150*22dc650dSSadaf Ebrahimi
4151*22dc650dSSadaf Ebrahimi/.{3,4}/
4152*22dc650dSSadaf Ebrahimi    abbbbc
4153*22dc650dSSadaf Ebrahimi 0: abbb
4154*22dc650dSSadaf Ebrahimi
4155*22dc650dSSadaf Ebrahimi/ab{0,}bc/
4156*22dc650dSSadaf Ebrahimi    abbbbc
4157*22dc650dSSadaf Ebrahimi 0: abbbbc
4158*22dc650dSSadaf Ebrahimi
4159*22dc650dSSadaf Ebrahimi/ab+bc/
4160*22dc650dSSadaf Ebrahimi    abbc
4161*22dc650dSSadaf Ebrahimi 0: abbc
4162*22dc650dSSadaf Ebrahimi\= Expect no match
4163*22dc650dSSadaf Ebrahimi    abc
4164*22dc650dSSadaf EbrahimiNo match
4165*22dc650dSSadaf Ebrahimi    abq
4166*22dc650dSSadaf EbrahimiNo match
4167*22dc650dSSadaf Ebrahimi
4168*22dc650dSSadaf Ebrahimi/ab+bc/
4169*22dc650dSSadaf Ebrahimi    abbbbc
4170*22dc650dSSadaf Ebrahimi 0: abbbbc
4171*22dc650dSSadaf Ebrahimi
4172*22dc650dSSadaf Ebrahimi/ab{1,}bc/
4173*22dc650dSSadaf Ebrahimi    abbbbc
4174*22dc650dSSadaf Ebrahimi 0: abbbbc
4175*22dc650dSSadaf Ebrahimi
4176*22dc650dSSadaf Ebrahimi/ab{1,3}bc/
4177*22dc650dSSadaf Ebrahimi    abbbbc
4178*22dc650dSSadaf Ebrahimi 0: abbbbc
4179*22dc650dSSadaf Ebrahimi
4180*22dc650dSSadaf Ebrahimi/ab{3,4}bc/
4181*22dc650dSSadaf Ebrahimi    abbbbc
4182*22dc650dSSadaf Ebrahimi 0: abbbbc
4183*22dc650dSSadaf Ebrahimi
4184*22dc650dSSadaf Ebrahimi/ab{4,5}bc/
4185*22dc650dSSadaf Ebrahimi\= Expect no match
4186*22dc650dSSadaf Ebrahimi    abq
4187*22dc650dSSadaf EbrahimiNo match
4188*22dc650dSSadaf Ebrahimi    abbbbc
4189*22dc650dSSadaf EbrahimiNo match
4190*22dc650dSSadaf Ebrahimi
4191*22dc650dSSadaf Ebrahimi/ab?bc/
4192*22dc650dSSadaf Ebrahimi    abbc
4193*22dc650dSSadaf Ebrahimi 0: abbc
4194*22dc650dSSadaf Ebrahimi    abc
4195*22dc650dSSadaf Ebrahimi 0: abc
4196*22dc650dSSadaf Ebrahimi
4197*22dc650dSSadaf Ebrahimi/ab{0,1}bc/
4198*22dc650dSSadaf Ebrahimi    abc
4199*22dc650dSSadaf Ebrahimi 0: abc
4200*22dc650dSSadaf Ebrahimi
4201*22dc650dSSadaf Ebrahimi/ab?bc/
4202*22dc650dSSadaf Ebrahimi
4203*22dc650dSSadaf Ebrahimi/ab?c/
4204*22dc650dSSadaf Ebrahimi    abc
4205*22dc650dSSadaf Ebrahimi 0: abc
4206*22dc650dSSadaf Ebrahimi
4207*22dc650dSSadaf Ebrahimi/ab{0,1}c/
4208*22dc650dSSadaf Ebrahimi    abc
4209*22dc650dSSadaf Ebrahimi 0: abc
4210*22dc650dSSadaf Ebrahimi
4211*22dc650dSSadaf Ebrahimi/^abc$/
4212*22dc650dSSadaf Ebrahimi    abc
4213*22dc650dSSadaf Ebrahimi 0: abc
4214*22dc650dSSadaf Ebrahimi\= Expect no match
4215*22dc650dSSadaf Ebrahimi    abbbbc
4216*22dc650dSSadaf EbrahimiNo match
4217*22dc650dSSadaf Ebrahimi    abcc
4218*22dc650dSSadaf EbrahimiNo match
4219*22dc650dSSadaf Ebrahimi
4220*22dc650dSSadaf Ebrahimi/^abc/
4221*22dc650dSSadaf Ebrahimi    abcc
4222*22dc650dSSadaf Ebrahimi 0: abc
4223*22dc650dSSadaf Ebrahimi
4224*22dc650dSSadaf Ebrahimi/^abc$/
4225*22dc650dSSadaf Ebrahimi
4226*22dc650dSSadaf Ebrahimi/abc$/
4227*22dc650dSSadaf Ebrahimi    aabc
4228*22dc650dSSadaf Ebrahimi 0: abc
4229*22dc650dSSadaf Ebrahimi    aabc
4230*22dc650dSSadaf Ebrahimi 0: abc
4231*22dc650dSSadaf Ebrahimi\= Expect no match
4232*22dc650dSSadaf Ebrahimi    aabcd
4233*22dc650dSSadaf EbrahimiNo match
4234*22dc650dSSadaf Ebrahimi
4235*22dc650dSSadaf Ebrahimi/^/
4236*22dc650dSSadaf Ebrahimi    abc
4237*22dc650dSSadaf Ebrahimi 0:
4238*22dc650dSSadaf Ebrahimi
4239*22dc650dSSadaf Ebrahimi/$/
4240*22dc650dSSadaf Ebrahimi    abc
4241*22dc650dSSadaf Ebrahimi 0:
4242*22dc650dSSadaf Ebrahimi
4243*22dc650dSSadaf Ebrahimi/a.c/
4244*22dc650dSSadaf Ebrahimi    abc
4245*22dc650dSSadaf Ebrahimi 0: abc
4246*22dc650dSSadaf Ebrahimi    axc
4247*22dc650dSSadaf Ebrahimi 0: axc
4248*22dc650dSSadaf Ebrahimi
4249*22dc650dSSadaf Ebrahimi/a.*c/
4250*22dc650dSSadaf Ebrahimi    axyzc
4251*22dc650dSSadaf Ebrahimi 0: axyzc
4252*22dc650dSSadaf Ebrahimi
4253*22dc650dSSadaf Ebrahimi/a[bc]d/
4254*22dc650dSSadaf Ebrahimi    abd
4255*22dc650dSSadaf Ebrahimi 0: abd
4256*22dc650dSSadaf Ebrahimi\= Expect no match
4257*22dc650dSSadaf Ebrahimi    axyzd
4258*22dc650dSSadaf EbrahimiNo match
4259*22dc650dSSadaf Ebrahimi    abc
4260*22dc650dSSadaf EbrahimiNo match
4261*22dc650dSSadaf Ebrahimi
4262*22dc650dSSadaf Ebrahimi/a[b-d]e/
4263*22dc650dSSadaf Ebrahimi    ace
4264*22dc650dSSadaf Ebrahimi 0: ace
4265*22dc650dSSadaf Ebrahimi
4266*22dc650dSSadaf Ebrahimi/a[b-d]/
4267*22dc650dSSadaf Ebrahimi    aac
4268*22dc650dSSadaf Ebrahimi 0: ac
4269*22dc650dSSadaf Ebrahimi
4270*22dc650dSSadaf Ebrahimi/a[-b]/
4271*22dc650dSSadaf Ebrahimi    a-
4272*22dc650dSSadaf Ebrahimi 0: a-
4273*22dc650dSSadaf Ebrahimi
4274*22dc650dSSadaf Ebrahimi/a[b-]/
4275*22dc650dSSadaf Ebrahimi    a-
4276*22dc650dSSadaf Ebrahimi 0: a-
4277*22dc650dSSadaf Ebrahimi
4278*22dc650dSSadaf Ebrahimi/a]/
4279*22dc650dSSadaf Ebrahimi    a]
4280*22dc650dSSadaf Ebrahimi 0: a]
4281*22dc650dSSadaf Ebrahimi
4282*22dc650dSSadaf Ebrahimi/a[]]b/
4283*22dc650dSSadaf Ebrahimi    a]b
4284*22dc650dSSadaf Ebrahimi 0: a]b
4285*22dc650dSSadaf Ebrahimi
4286*22dc650dSSadaf Ebrahimi/a[^bc]d/
4287*22dc650dSSadaf Ebrahimi    aed
4288*22dc650dSSadaf Ebrahimi 0: aed
4289*22dc650dSSadaf Ebrahimi\= Expect no match
4290*22dc650dSSadaf Ebrahimi    abd
4291*22dc650dSSadaf EbrahimiNo match
4292*22dc650dSSadaf Ebrahimi    abd
4293*22dc650dSSadaf EbrahimiNo match
4294*22dc650dSSadaf Ebrahimi
4295*22dc650dSSadaf Ebrahimi/a[^-b]c/
4296*22dc650dSSadaf Ebrahimi    adc
4297*22dc650dSSadaf Ebrahimi 0: adc
4298*22dc650dSSadaf Ebrahimi
4299*22dc650dSSadaf Ebrahimi/a[^]b]c/
4300*22dc650dSSadaf Ebrahimi    adc
4301*22dc650dSSadaf Ebrahimi 0: adc
4302*22dc650dSSadaf Ebrahimi    a-c
4303*22dc650dSSadaf Ebrahimi 0: a-c
4304*22dc650dSSadaf Ebrahimi\= Expect no match
4305*22dc650dSSadaf Ebrahimi    a]c
4306*22dc650dSSadaf EbrahimiNo match
4307*22dc650dSSadaf Ebrahimi
4308*22dc650dSSadaf Ebrahimi/\ba\b/
4309*22dc650dSSadaf Ebrahimi    a-
4310*22dc650dSSadaf Ebrahimi 0: a
4311*22dc650dSSadaf Ebrahimi    -a
4312*22dc650dSSadaf Ebrahimi 0: a
4313*22dc650dSSadaf Ebrahimi    -a-
4314*22dc650dSSadaf Ebrahimi 0: a
4315*22dc650dSSadaf Ebrahimi
4316*22dc650dSSadaf Ebrahimi/\by\b/
4317*22dc650dSSadaf Ebrahimi\= Expect no match
4318*22dc650dSSadaf Ebrahimi    xy
4319*22dc650dSSadaf EbrahimiNo match
4320*22dc650dSSadaf Ebrahimi    yz
4321*22dc650dSSadaf EbrahimiNo match
4322*22dc650dSSadaf Ebrahimi    xyz
4323*22dc650dSSadaf EbrahimiNo match
4324*22dc650dSSadaf Ebrahimi
4325*22dc650dSSadaf Ebrahimi/\Ba\B/
4326*22dc650dSSadaf Ebrahimi\= Expect no match
4327*22dc650dSSadaf Ebrahimi    a-
4328*22dc650dSSadaf EbrahimiNo match
4329*22dc650dSSadaf Ebrahimi    -a
4330*22dc650dSSadaf EbrahimiNo match
4331*22dc650dSSadaf Ebrahimi    -a-
4332*22dc650dSSadaf EbrahimiNo match
4333*22dc650dSSadaf Ebrahimi
4334*22dc650dSSadaf Ebrahimi/\By\b/
4335*22dc650dSSadaf Ebrahimi    xy
4336*22dc650dSSadaf Ebrahimi 0: y
4337*22dc650dSSadaf Ebrahimi
4338*22dc650dSSadaf Ebrahimi/\by\B/
4339*22dc650dSSadaf Ebrahimi    yz
4340*22dc650dSSadaf Ebrahimi 0: y
4341*22dc650dSSadaf Ebrahimi
4342*22dc650dSSadaf Ebrahimi/\By\B/
4343*22dc650dSSadaf Ebrahimi    xyz
4344*22dc650dSSadaf Ebrahimi 0: y
4345*22dc650dSSadaf Ebrahimi
4346*22dc650dSSadaf Ebrahimi/\w/
4347*22dc650dSSadaf Ebrahimi    a
4348*22dc650dSSadaf Ebrahimi 0: a
4349*22dc650dSSadaf Ebrahimi
4350*22dc650dSSadaf Ebrahimi/\W/
4351*22dc650dSSadaf Ebrahimi    -
4352*22dc650dSSadaf Ebrahimi 0: -
4353*22dc650dSSadaf Ebrahimi\= Expect no match
4354*22dc650dSSadaf Ebrahimi    a
4355*22dc650dSSadaf EbrahimiNo match
4356*22dc650dSSadaf Ebrahimi
4357*22dc650dSSadaf Ebrahimi/a\sb/
4358*22dc650dSSadaf Ebrahimi    a b
4359*22dc650dSSadaf Ebrahimi 0: a b
4360*22dc650dSSadaf Ebrahimi
4361*22dc650dSSadaf Ebrahimi/a\Sb/
4362*22dc650dSSadaf Ebrahimi    a-b
4363*22dc650dSSadaf Ebrahimi 0: a-b
4364*22dc650dSSadaf Ebrahimi\= Expect no match
4365*22dc650dSSadaf Ebrahimi    a b
4366*22dc650dSSadaf EbrahimiNo match
4367*22dc650dSSadaf Ebrahimi
4368*22dc650dSSadaf Ebrahimi/\d/
4369*22dc650dSSadaf Ebrahimi    1
4370*22dc650dSSadaf Ebrahimi 0: 1
4371*22dc650dSSadaf Ebrahimi
4372*22dc650dSSadaf Ebrahimi/\D/
4373*22dc650dSSadaf Ebrahimi    -
4374*22dc650dSSadaf Ebrahimi 0: -
4375*22dc650dSSadaf Ebrahimi\= Expect no match
4376*22dc650dSSadaf Ebrahimi    1
4377*22dc650dSSadaf EbrahimiNo match
4378*22dc650dSSadaf Ebrahimi
4379*22dc650dSSadaf Ebrahimi/[\w]/
4380*22dc650dSSadaf Ebrahimi    a
4381*22dc650dSSadaf Ebrahimi 0: a
4382*22dc650dSSadaf Ebrahimi
4383*22dc650dSSadaf Ebrahimi/[\W]/
4384*22dc650dSSadaf Ebrahimi    -
4385*22dc650dSSadaf Ebrahimi 0: -
4386*22dc650dSSadaf Ebrahimi\= Expect no match
4387*22dc650dSSadaf Ebrahimi    a
4388*22dc650dSSadaf EbrahimiNo match
4389*22dc650dSSadaf Ebrahimi
4390*22dc650dSSadaf Ebrahimi/a[\s]b/
4391*22dc650dSSadaf Ebrahimi    a b
4392*22dc650dSSadaf Ebrahimi 0: a b
4393*22dc650dSSadaf Ebrahimi
4394*22dc650dSSadaf Ebrahimi/a[\S]b/
4395*22dc650dSSadaf Ebrahimi    a-b
4396*22dc650dSSadaf Ebrahimi 0: a-b
4397*22dc650dSSadaf Ebrahimi\= Expect no match
4398*22dc650dSSadaf Ebrahimi    a b
4399*22dc650dSSadaf EbrahimiNo match
4400*22dc650dSSadaf Ebrahimi
4401*22dc650dSSadaf Ebrahimi/[\d]/
4402*22dc650dSSadaf Ebrahimi    1
4403*22dc650dSSadaf Ebrahimi 0: 1
4404*22dc650dSSadaf Ebrahimi
4405*22dc650dSSadaf Ebrahimi/[\D]/
4406*22dc650dSSadaf Ebrahimi    -
4407*22dc650dSSadaf Ebrahimi 0: -
4408*22dc650dSSadaf Ebrahimi\= Expect no match
4409*22dc650dSSadaf Ebrahimi    1
4410*22dc650dSSadaf EbrahimiNo match
4411*22dc650dSSadaf Ebrahimi
4412*22dc650dSSadaf Ebrahimi/ab|cd/
4413*22dc650dSSadaf Ebrahimi    abc
4414*22dc650dSSadaf Ebrahimi 0: ab
4415*22dc650dSSadaf Ebrahimi    abcd
4416*22dc650dSSadaf Ebrahimi 0: ab
4417*22dc650dSSadaf Ebrahimi
4418*22dc650dSSadaf Ebrahimi/()ef/
4419*22dc650dSSadaf Ebrahimi    def
4420*22dc650dSSadaf Ebrahimi 0: ef
4421*22dc650dSSadaf Ebrahimi
4422*22dc650dSSadaf Ebrahimi/$b/
4423*22dc650dSSadaf Ebrahimi
4424*22dc650dSSadaf Ebrahimi/a\(b/
4425*22dc650dSSadaf Ebrahimi    a(b
4426*22dc650dSSadaf Ebrahimi 0: a(b
4427*22dc650dSSadaf Ebrahimi
4428*22dc650dSSadaf Ebrahimi/a\(*b/
4429*22dc650dSSadaf Ebrahimi    ab
4430*22dc650dSSadaf Ebrahimi 0: ab
4431*22dc650dSSadaf Ebrahimi    a((b
4432*22dc650dSSadaf Ebrahimi 0: a((b
4433*22dc650dSSadaf Ebrahimi
4434*22dc650dSSadaf Ebrahimi/a\\b/
4435*22dc650dSSadaf Ebrahimi    a\\b
4436*22dc650dSSadaf Ebrahimi 0: a\b
4437*22dc650dSSadaf Ebrahimi\= Expect no match
4438*22dc650dSSadaf Ebrahimi    a\b
4439*22dc650dSSadaf EbrahimiNo match
4440*22dc650dSSadaf Ebrahimi
4441*22dc650dSSadaf Ebrahimi/((a))/
4442*22dc650dSSadaf Ebrahimi    abc
4443*22dc650dSSadaf Ebrahimi 0: a
4444*22dc650dSSadaf Ebrahimi
4445*22dc650dSSadaf Ebrahimi/(a)b(c)/
4446*22dc650dSSadaf Ebrahimi    abc
4447*22dc650dSSadaf Ebrahimi 0: abc
4448*22dc650dSSadaf Ebrahimi
4449*22dc650dSSadaf Ebrahimi/a+b+c/
4450*22dc650dSSadaf Ebrahimi    aabbabc
4451*22dc650dSSadaf Ebrahimi 0: abc
4452*22dc650dSSadaf Ebrahimi
4453*22dc650dSSadaf Ebrahimi/a{1,}b{1,}c/
4454*22dc650dSSadaf Ebrahimi    aabbabc
4455*22dc650dSSadaf Ebrahimi 0: abc
4456*22dc650dSSadaf Ebrahimi
4457*22dc650dSSadaf Ebrahimi/a.+?c/
4458*22dc650dSSadaf Ebrahimi    abcabc
4459*22dc650dSSadaf Ebrahimi 0: abcabc
4460*22dc650dSSadaf Ebrahimi 1: abc
4461*22dc650dSSadaf Ebrahimi
4462*22dc650dSSadaf Ebrahimi/(a+|b)*/
4463*22dc650dSSadaf Ebrahimi    ab
4464*22dc650dSSadaf Ebrahimi 0: ab
4465*22dc650dSSadaf Ebrahimi 1: a
4466*22dc650dSSadaf Ebrahimi 2:
4467*22dc650dSSadaf Ebrahimi
4468*22dc650dSSadaf Ebrahimi/(a+|b){0,}/
4469*22dc650dSSadaf Ebrahimi    ab
4470*22dc650dSSadaf Ebrahimi 0: ab
4471*22dc650dSSadaf Ebrahimi 1: a
4472*22dc650dSSadaf Ebrahimi 2:
4473*22dc650dSSadaf Ebrahimi
4474*22dc650dSSadaf Ebrahimi/(a+|b)+/
4475*22dc650dSSadaf Ebrahimi    ab
4476*22dc650dSSadaf Ebrahimi 0: ab
4477*22dc650dSSadaf Ebrahimi 1: a
4478*22dc650dSSadaf Ebrahimi
4479*22dc650dSSadaf Ebrahimi/(a+|b){1,}/
4480*22dc650dSSadaf Ebrahimi    ab
4481*22dc650dSSadaf Ebrahimi 0: ab
4482*22dc650dSSadaf Ebrahimi 1: a
4483*22dc650dSSadaf Ebrahimi
4484*22dc650dSSadaf Ebrahimi/(a+|b)?/
4485*22dc650dSSadaf Ebrahimi    ab
4486*22dc650dSSadaf Ebrahimi 0: a
4487*22dc650dSSadaf Ebrahimi 1:
4488*22dc650dSSadaf Ebrahimi
4489*22dc650dSSadaf Ebrahimi/(a+|b){0,1}/
4490*22dc650dSSadaf Ebrahimi    ab
4491*22dc650dSSadaf Ebrahimi 0: a
4492*22dc650dSSadaf Ebrahimi 1:
4493*22dc650dSSadaf Ebrahimi
4494*22dc650dSSadaf Ebrahimi/[^ab]*/
4495*22dc650dSSadaf Ebrahimi    cde
4496*22dc650dSSadaf Ebrahimi 0: cde
4497*22dc650dSSadaf Ebrahimi
4498*22dc650dSSadaf Ebrahimi/abc/
4499*22dc650dSSadaf Ebrahimi\= Expect no match
4500*22dc650dSSadaf Ebrahimi    b
4501*22dc650dSSadaf EbrahimiNo match
4502*22dc650dSSadaf Ebrahimi
4503*22dc650dSSadaf Ebrahimi/a*/
4504*22dc650dSSadaf Ebrahimi
4505*22dc650dSSadaf Ebrahimi/([abc])*d/
4506*22dc650dSSadaf Ebrahimi    abbbcd
4507*22dc650dSSadaf Ebrahimi 0: abbbcd
4508*22dc650dSSadaf Ebrahimi
4509*22dc650dSSadaf Ebrahimi/([abc])*bcd/
4510*22dc650dSSadaf Ebrahimi    abcd
4511*22dc650dSSadaf Ebrahimi 0: abcd
4512*22dc650dSSadaf Ebrahimi
4513*22dc650dSSadaf Ebrahimi/a|b|c|d|e/
4514*22dc650dSSadaf Ebrahimi    e
4515*22dc650dSSadaf Ebrahimi 0: e
4516*22dc650dSSadaf Ebrahimi
4517*22dc650dSSadaf Ebrahimi/(a|b|c|d|e)f/
4518*22dc650dSSadaf Ebrahimi    ef
4519*22dc650dSSadaf Ebrahimi 0: ef
4520*22dc650dSSadaf Ebrahimi
4521*22dc650dSSadaf Ebrahimi/abcd*efg/
4522*22dc650dSSadaf Ebrahimi    abcdefg
4523*22dc650dSSadaf Ebrahimi 0: abcdefg
4524*22dc650dSSadaf Ebrahimi
4525*22dc650dSSadaf Ebrahimi/ab*/
4526*22dc650dSSadaf Ebrahimi    xabyabbbz
4527*22dc650dSSadaf Ebrahimi 0: ab
4528*22dc650dSSadaf Ebrahimi    xayabbbz
4529*22dc650dSSadaf Ebrahimi 0: a
4530*22dc650dSSadaf Ebrahimi
4531*22dc650dSSadaf Ebrahimi/(ab|cd)e/
4532*22dc650dSSadaf Ebrahimi    abcde
4533*22dc650dSSadaf Ebrahimi 0: cde
4534*22dc650dSSadaf Ebrahimi
4535*22dc650dSSadaf Ebrahimi/[abhgefdc]ij/
4536*22dc650dSSadaf Ebrahimi    hij
4537*22dc650dSSadaf Ebrahimi 0: hij
4538*22dc650dSSadaf Ebrahimi
4539*22dc650dSSadaf Ebrahimi/^(ab|cd)e/
4540*22dc650dSSadaf Ebrahimi
4541*22dc650dSSadaf Ebrahimi/(abc|)ef/
4542*22dc650dSSadaf Ebrahimi    abcdef
4543*22dc650dSSadaf Ebrahimi 0: ef
4544*22dc650dSSadaf Ebrahimi
4545*22dc650dSSadaf Ebrahimi/(a|b)c*d/
4546*22dc650dSSadaf Ebrahimi    abcd
4547*22dc650dSSadaf Ebrahimi 0: bcd
4548*22dc650dSSadaf Ebrahimi
4549*22dc650dSSadaf Ebrahimi/(ab|ab*)bc/
4550*22dc650dSSadaf Ebrahimi    abc
4551*22dc650dSSadaf Ebrahimi 0: abc
4552*22dc650dSSadaf Ebrahimi
4553*22dc650dSSadaf Ebrahimi/a([bc]*)c*/
4554*22dc650dSSadaf Ebrahimi    abc
4555*22dc650dSSadaf Ebrahimi 0: abc
4556*22dc650dSSadaf Ebrahimi 1: a
4557*22dc650dSSadaf Ebrahimi
4558*22dc650dSSadaf Ebrahimi/a([bc]*)(c*d)/
4559*22dc650dSSadaf Ebrahimi    abcd
4560*22dc650dSSadaf Ebrahimi 0: abcd
4561*22dc650dSSadaf Ebrahimi
4562*22dc650dSSadaf Ebrahimi/a([bc]+)(c*d)/
4563*22dc650dSSadaf Ebrahimi    abcd
4564*22dc650dSSadaf Ebrahimi 0: abcd
4565*22dc650dSSadaf Ebrahimi
4566*22dc650dSSadaf Ebrahimi/a([bc]*)(c+d)/
4567*22dc650dSSadaf Ebrahimi    abcd
4568*22dc650dSSadaf Ebrahimi 0: abcd
4569*22dc650dSSadaf Ebrahimi
4570*22dc650dSSadaf Ebrahimi/a[bcd]*dcdcde/
4571*22dc650dSSadaf Ebrahimi    adcdcde
4572*22dc650dSSadaf Ebrahimi 0: adcdcde
4573*22dc650dSSadaf Ebrahimi
4574*22dc650dSSadaf Ebrahimi/a[bcd]+dcdcde/
4575*22dc650dSSadaf Ebrahimi\= Expect no match
4576*22dc650dSSadaf Ebrahimi    abcde
4577*22dc650dSSadaf EbrahimiNo match
4578*22dc650dSSadaf Ebrahimi    adcdcde
4579*22dc650dSSadaf EbrahimiNo match
4580*22dc650dSSadaf Ebrahimi
4581*22dc650dSSadaf Ebrahimi/(ab|a)b*c/
4582*22dc650dSSadaf Ebrahimi    abc
4583*22dc650dSSadaf Ebrahimi 0: abc
4584*22dc650dSSadaf Ebrahimi
4585*22dc650dSSadaf Ebrahimi/((a)(b)c)(d)/
4586*22dc650dSSadaf Ebrahimi    abcd
4587*22dc650dSSadaf Ebrahimi 0: abcd
4588*22dc650dSSadaf Ebrahimi
4589*22dc650dSSadaf Ebrahimi/[a-zA-Z_][a-zA-Z0-9_]*/
4590*22dc650dSSadaf Ebrahimi    alpha
4591*22dc650dSSadaf Ebrahimi 0: alpha
4592*22dc650dSSadaf Ebrahimi
4593*22dc650dSSadaf Ebrahimi/^a(bc+|b[eh])g|.h$/
4594*22dc650dSSadaf Ebrahimi    abh
4595*22dc650dSSadaf Ebrahimi 0: bh
4596*22dc650dSSadaf Ebrahimi
4597*22dc650dSSadaf Ebrahimi/(bc+d$|ef*g.|h?i(j|k))/
4598*22dc650dSSadaf Ebrahimi    effgz
4599*22dc650dSSadaf Ebrahimi 0: effgz
4600*22dc650dSSadaf Ebrahimi    ij
4601*22dc650dSSadaf Ebrahimi 0: ij
4602*22dc650dSSadaf Ebrahimi    reffgz
4603*22dc650dSSadaf Ebrahimi 0: effgz
4604*22dc650dSSadaf Ebrahimi\= Expect no match
4605*22dc650dSSadaf Ebrahimi    effg
4606*22dc650dSSadaf EbrahimiNo match
4607*22dc650dSSadaf Ebrahimi    bcdd
4608*22dc650dSSadaf EbrahimiNo match
4609*22dc650dSSadaf Ebrahimi
4610*22dc650dSSadaf Ebrahimi/((((((((((a))))))))))/
4611*22dc650dSSadaf Ebrahimi    a
4612*22dc650dSSadaf Ebrahimi 0: a
4613*22dc650dSSadaf Ebrahimi
4614*22dc650dSSadaf Ebrahimi/(((((((((a)))))))))/
4615*22dc650dSSadaf Ebrahimi    a
4616*22dc650dSSadaf Ebrahimi 0: a
4617*22dc650dSSadaf Ebrahimi
4618*22dc650dSSadaf Ebrahimi/multiple words of text/
4619*22dc650dSSadaf Ebrahimi\= Expect no match
4620*22dc650dSSadaf Ebrahimi    aa
4621*22dc650dSSadaf EbrahimiNo match
4622*22dc650dSSadaf Ebrahimi    uh-uh
4623*22dc650dSSadaf EbrahimiNo match
4624*22dc650dSSadaf Ebrahimi
4625*22dc650dSSadaf Ebrahimi/multiple words/
4626*22dc650dSSadaf Ebrahimi    multiple words, yeah
4627*22dc650dSSadaf Ebrahimi 0: multiple words
4628*22dc650dSSadaf Ebrahimi
4629*22dc650dSSadaf Ebrahimi/(.*)c(.*)/
4630*22dc650dSSadaf Ebrahimi    abcde
4631*22dc650dSSadaf Ebrahimi 0: abcde
4632*22dc650dSSadaf Ebrahimi
4633*22dc650dSSadaf Ebrahimi/\((.*), (.*)\)/
4634*22dc650dSSadaf Ebrahimi    (a, b)
4635*22dc650dSSadaf Ebrahimi 0: (a, b)
4636*22dc650dSSadaf Ebrahimi
4637*22dc650dSSadaf Ebrahimi/[k]/
4638*22dc650dSSadaf Ebrahimi
4639*22dc650dSSadaf Ebrahimi/abcd/
4640*22dc650dSSadaf Ebrahimi    abcd
4641*22dc650dSSadaf Ebrahimi 0: abcd
4642*22dc650dSSadaf Ebrahimi
4643*22dc650dSSadaf Ebrahimi/a(bc)d/
4644*22dc650dSSadaf Ebrahimi    abcd
4645*22dc650dSSadaf Ebrahimi 0: abcd
4646*22dc650dSSadaf Ebrahimi
4647*22dc650dSSadaf Ebrahimi/a[-]?c/
4648*22dc650dSSadaf Ebrahimi    ac
4649*22dc650dSSadaf Ebrahimi 0: ac
4650*22dc650dSSadaf Ebrahimi
4651*22dc650dSSadaf Ebrahimi/abc/i
4652*22dc650dSSadaf Ebrahimi    ABC
4653*22dc650dSSadaf Ebrahimi 0: ABC
4654*22dc650dSSadaf Ebrahimi    XABCY
4655*22dc650dSSadaf Ebrahimi 0: ABC
4656*22dc650dSSadaf Ebrahimi    ABABC
4657*22dc650dSSadaf Ebrahimi 0: ABC
4658*22dc650dSSadaf Ebrahimi\= Expect no match
4659*22dc650dSSadaf Ebrahimi    aaxabxbaxbbx
4660*22dc650dSSadaf EbrahimiNo match
4661*22dc650dSSadaf Ebrahimi    XBC
4662*22dc650dSSadaf EbrahimiNo match
4663*22dc650dSSadaf Ebrahimi    AXC
4664*22dc650dSSadaf EbrahimiNo match
4665*22dc650dSSadaf Ebrahimi    ABX
4666*22dc650dSSadaf EbrahimiNo match
4667*22dc650dSSadaf Ebrahimi
4668*22dc650dSSadaf Ebrahimi/ab*c/i
4669*22dc650dSSadaf Ebrahimi    ABC
4670*22dc650dSSadaf Ebrahimi 0: ABC
4671*22dc650dSSadaf Ebrahimi
4672*22dc650dSSadaf Ebrahimi/ab*bc/i
4673*22dc650dSSadaf Ebrahimi    ABC
4674*22dc650dSSadaf Ebrahimi 0: ABC
4675*22dc650dSSadaf Ebrahimi    ABBC
4676*22dc650dSSadaf Ebrahimi 0: ABBC
4677*22dc650dSSadaf Ebrahimi
4678*22dc650dSSadaf Ebrahimi/ab*?bc/i
4679*22dc650dSSadaf Ebrahimi    ABBBBC
4680*22dc650dSSadaf Ebrahimi 0: ABBBBC
4681*22dc650dSSadaf Ebrahimi
4682*22dc650dSSadaf Ebrahimi/ab{0,}?bc/i
4683*22dc650dSSadaf Ebrahimi    ABBBBC
4684*22dc650dSSadaf Ebrahimi 0: ABBBBC
4685*22dc650dSSadaf Ebrahimi
4686*22dc650dSSadaf Ebrahimi/ab+?bc/i
4687*22dc650dSSadaf Ebrahimi    ABBC
4688*22dc650dSSadaf Ebrahimi 0: ABBC
4689*22dc650dSSadaf Ebrahimi
4690*22dc650dSSadaf Ebrahimi/ab+bc/i
4691*22dc650dSSadaf Ebrahimi\= Expect no match
4692*22dc650dSSadaf Ebrahimi    ABC
4693*22dc650dSSadaf EbrahimiNo match
4694*22dc650dSSadaf Ebrahimi    ABQ
4695*22dc650dSSadaf EbrahimiNo match
4696*22dc650dSSadaf Ebrahimi
4697*22dc650dSSadaf Ebrahimi/ab{1,}bc/i
4698*22dc650dSSadaf Ebrahimi
4699*22dc650dSSadaf Ebrahimi/ab+bc/i
4700*22dc650dSSadaf Ebrahimi    ABBBBC
4701*22dc650dSSadaf Ebrahimi 0: ABBBBC
4702*22dc650dSSadaf Ebrahimi
4703*22dc650dSSadaf Ebrahimi/ab{1,}?bc/i
4704*22dc650dSSadaf Ebrahimi    ABBBBC
4705*22dc650dSSadaf Ebrahimi 0: ABBBBC
4706*22dc650dSSadaf Ebrahimi
4707*22dc650dSSadaf Ebrahimi/ab{1,3}?bc/i
4708*22dc650dSSadaf Ebrahimi    ABBBBC
4709*22dc650dSSadaf Ebrahimi 0: ABBBBC
4710*22dc650dSSadaf Ebrahimi
4711*22dc650dSSadaf Ebrahimi/ab{3,4}?bc/i
4712*22dc650dSSadaf Ebrahimi    ABBBBC
4713*22dc650dSSadaf Ebrahimi 0: ABBBBC
4714*22dc650dSSadaf Ebrahimi
4715*22dc650dSSadaf Ebrahimi/ab{4,5}?bc/i
4716*22dc650dSSadaf Ebrahimi\= Expect no match
4717*22dc650dSSadaf Ebrahimi    ABQ
4718*22dc650dSSadaf EbrahimiNo match
4719*22dc650dSSadaf Ebrahimi    ABBBBC
4720*22dc650dSSadaf EbrahimiNo match
4721*22dc650dSSadaf Ebrahimi
4722*22dc650dSSadaf Ebrahimi/ab??bc/i
4723*22dc650dSSadaf Ebrahimi    ABBC
4724*22dc650dSSadaf Ebrahimi 0: ABBC
4725*22dc650dSSadaf Ebrahimi    ABC
4726*22dc650dSSadaf Ebrahimi 0: ABC
4727*22dc650dSSadaf Ebrahimi
4728*22dc650dSSadaf Ebrahimi/ab{0,1}?bc/i
4729*22dc650dSSadaf Ebrahimi    ABC
4730*22dc650dSSadaf Ebrahimi 0: ABC
4731*22dc650dSSadaf Ebrahimi
4732*22dc650dSSadaf Ebrahimi/ab??bc/i
4733*22dc650dSSadaf Ebrahimi
4734*22dc650dSSadaf Ebrahimi/ab??c/i
4735*22dc650dSSadaf Ebrahimi    ABC
4736*22dc650dSSadaf Ebrahimi 0: ABC
4737*22dc650dSSadaf Ebrahimi
4738*22dc650dSSadaf Ebrahimi/ab{0,1}?c/i
4739*22dc650dSSadaf Ebrahimi    ABC
4740*22dc650dSSadaf Ebrahimi 0: ABC
4741*22dc650dSSadaf Ebrahimi
4742*22dc650dSSadaf Ebrahimi/^abc$/i
4743*22dc650dSSadaf Ebrahimi    ABC
4744*22dc650dSSadaf Ebrahimi 0: ABC
4745*22dc650dSSadaf Ebrahimi\= Expect no match
4746*22dc650dSSadaf Ebrahimi    ABBBBC
4747*22dc650dSSadaf EbrahimiNo match
4748*22dc650dSSadaf Ebrahimi    ABCC
4749*22dc650dSSadaf EbrahimiNo match
4750*22dc650dSSadaf Ebrahimi
4751*22dc650dSSadaf Ebrahimi/^abc/i
4752*22dc650dSSadaf Ebrahimi    ABCC
4753*22dc650dSSadaf Ebrahimi 0: ABC
4754*22dc650dSSadaf Ebrahimi
4755*22dc650dSSadaf Ebrahimi/^abc$/i
4756*22dc650dSSadaf Ebrahimi
4757*22dc650dSSadaf Ebrahimi/abc$/i
4758*22dc650dSSadaf Ebrahimi    AABC
4759*22dc650dSSadaf Ebrahimi 0: ABC
4760*22dc650dSSadaf Ebrahimi
4761*22dc650dSSadaf Ebrahimi/^/i
4762*22dc650dSSadaf Ebrahimi    ABC
4763*22dc650dSSadaf Ebrahimi 0:
4764*22dc650dSSadaf Ebrahimi
4765*22dc650dSSadaf Ebrahimi/$/i
4766*22dc650dSSadaf Ebrahimi    ABC
4767*22dc650dSSadaf Ebrahimi 0:
4768*22dc650dSSadaf Ebrahimi
4769*22dc650dSSadaf Ebrahimi/a.c/i
4770*22dc650dSSadaf Ebrahimi    ABC
4771*22dc650dSSadaf Ebrahimi 0: ABC
4772*22dc650dSSadaf Ebrahimi    AXC
4773*22dc650dSSadaf Ebrahimi 0: AXC
4774*22dc650dSSadaf Ebrahimi
4775*22dc650dSSadaf Ebrahimi/a.*?c/i
4776*22dc650dSSadaf Ebrahimi    AXYZC
4777*22dc650dSSadaf Ebrahimi 0: AXYZC
4778*22dc650dSSadaf Ebrahimi
4779*22dc650dSSadaf Ebrahimi/a.*c/i
4780*22dc650dSSadaf Ebrahimi    AABC
4781*22dc650dSSadaf Ebrahimi 0: AABC
4782*22dc650dSSadaf Ebrahimi\= Expect no match
4783*22dc650dSSadaf Ebrahimi    AXYZD
4784*22dc650dSSadaf EbrahimiNo match
4785*22dc650dSSadaf Ebrahimi
4786*22dc650dSSadaf Ebrahimi/a[bc]d/i
4787*22dc650dSSadaf Ebrahimi    ABD
4788*22dc650dSSadaf Ebrahimi 0: ABD
4789*22dc650dSSadaf Ebrahimi
4790*22dc650dSSadaf Ebrahimi/a[b-d]e/i
4791*22dc650dSSadaf Ebrahimi    ACE
4792*22dc650dSSadaf Ebrahimi 0: ACE
4793*22dc650dSSadaf Ebrahimi\= Expect no match
4794*22dc650dSSadaf Ebrahimi    ABC
4795*22dc650dSSadaf EbrahimiNo match
4796*22dc650dSSadaf Ebrahimi    ABD
4797*22dc650dSSadaf EbrahimiNo match
4798*22dc650dSSadaf Ebrahimi
4799*22dc650dSSadaf Ebrahimi/a[b-d]/i
4800*22dc650dSSadaf Ebrahimi    AAC
4801*22dc650dSSadaf Ebrahimi 0: AC
4802*22dc650dSSadaf Ebrahimi
4803*22dc650dSSadaf Ebrahimi/a[-b]/i
4804*22dc650dSSadaf Ebrahimi    A-
4805*22dc650dSSadaf Ebrahimi 0: A-
4806*22dc650dSSadaf Ebrahimi
4807*22dc650dSSadaf Ebrahimi/a[b-]/i
4808*22dc650dSSadaf Ebrahimi    A-
4809*22dc650dSSadaf Ebrahimi 0: A-
4810*22dc650dSSadaf Ebrahimi
4811*22dc650dSSadaf Ebrahimi/a]/i
4812*22dc650dSSadaf Ebrahimi    A]
4813*22dc650dSSadaf Ebrahimi 0: A]
4814*22dc650dSSadaf Ebrahimi
4815*22dc650dSSadaf Ebrahimi/a[]]b/i
4816*22dc650dSSadaf Ebrahimi    A]B
4817*22dc650dSSadaf Ebrahimi 0: A]B
4818*22dc650dSSadaf Ebrahimi
4819*22dc650dSSadaf Ebrahimi/a[^bc]d/i
4820*22dc650dSSadaf Ebrahimi    AED
4821*22dc650dSSadaf Ebrahimi 0: AED
4822*22dc650dSSadaf Ebrahimi
4823*22dc650dSSadaf Ebrahimi/a[^-b]c/i
4824*22dc650dSSadaf Ebrahimi    ADC
4825*22dc650dSSadaf Ebrahimi 0: ADC
4826*22dc650dSSadaf Ebrahimi\= Expect no match
4827*22dc650dSSadaf Ebrahimi    ABD
4828*22dc650dSSadaf EbrahimiNo match
4829*22dc650dSSadaf Ebrahimi    A-C
4830*22dc650dSSadaf EbrahimiNo match
4831*22dc650dSSadaf Ebrahimi
4832*22dc650dSSadaf Ebrahimi/a[^]b]c/i
4833*22dc650dSSadaf Ebrahimi    ADC
4834*22dc650dSSadaf Ebrahimi 0: ADC
4835*22dc650dSSadaf Ebrahimi
4836*22dc650dSSadaf Ebrahimi/ab|cd/i
4837*22dc650dSSadaf Ebrahimi    ABC
4838*22dc650dSSadaf Ebrahimi 0: AB
4839*22dc650dSSadaf Ebrahimi    ABCD
4840*22dc650dSSadaf Ebrahimi 0: AB
4841*22dc650dSSadaf Ebrahimi
4842*22dc650dSSadaf Ebrahimi/()ef/i
4843*22dc650dSSadaf Ebrahimi    DEF
4844*22dc650dSSadaf Ebrahimi 0: EF
4845*22dc650dSSadaf Ebrahimi
4846*22dc650dSSadaf Ebrahimi/$b/i
4847*22dc650dSSadaf Ebrahimi\= Expect no match
4848*22dc650dSSadaf Ebrahimi    A]C
4849*22dc650dSSadaf EbrahimiNo match
4850*22dc650dSSadaf Ebrahimi    B
4851*22dc650dSSadaf EbrahimiNo match
4852*22dc650dSSadaf Ebrahimi
4853*22dc650dSSadaf Ebrahimi/a\(b/i
4854*22dc650dSSadaf Ebrahimi    A(B
4855*22dc650dSSadaf Ebrahimi 0: A(B
4856*22dc650dSSadaf Ebrahimi
4857*22dc650dSSadaf Ebrahimi/a\(*b/i
4858*22dc650dSSadaf Ebrahimi    AB
4859*22dc650dSSadaf Ebrahimi 0: AB
4860*22dc650dSSadaf Ebrahimi    A((B
4861*22dc650dSSadaf Ebrahimi 0: A((B
4862*22dc650dSSadaf Ebrahimi
4863*22dc650dSSadaf Ebrahimi/a\\b/i
4864*22dc650dSSadaf Ebrahimi\= Expect no match
4865*22dc650dSSadaf Ebrahimi    A\=notbol
4866*22dc650dSSadaf EbrahimiNo match
4867*22dc650dSSadaf Ebrahimi
4868*22dc650dSSadaf Ebrahimi/((a))/i
4869*22dc650dSSadaf Ebrahimi    ABC
4870*22dc650dSSadaf Ebrahimi 0: A
4871*22dc650dSSadaf Ebrahimi
4872*22dc650dSSadaf Ebrahimi/(a)b(c)/i
4873*22dc650dSSadaf Ebrahimi    ABC
4874*22dc650dSSadaf Ebrahimi 0: ABC
4875*22dc650dSSadaf Ebrahimi
4876*22dc650dSSadaf Ebrahimi/a+b+c/i
4877*22dc650dSSadaf Ebrahimi    AABBABC
4878*22dc650dSSadaf Ebrahimi 0: ABC
4879*22dc650dSSadaf Ebrahimi
4880*22dc650dSSadaf Ebrahimi/a{1,}b{1,}c/i
4881*22dc650dSSadaf Ebrahimi    AABBABC
4882*22dc650dSSadaf Ebrahimi 0: ABC
4883*22dc650dSSadaf Ebrahimi
4884*22dc650dSSadaf Ebrahimi/a.+?c/i
4885*22dc650dSSadaf Ebrahimi    ABCABC
4886*22dc650dSSadaf Ebrahimi 0: ABCABC
4887*22dc650dSSadaf Ebrahimi 1: ABC
4888*22dc650dSSadaf Ebrahimi
4889*22dc650dSSadaf Ebrahimi/a.*?c/i
4890*22dc650dSSadaf Ebrahimi    ABCABC
4891*22dc650dSSadaf Ebrahimi 0: ABCABC
4892*22dc650dSSadaf Ebrahimi 1: ABC
4893*22dc650dSSadaf Ebrahimi
4894*22dc650dSSadaf Ebrahimi/a.{0,5}?c/i
4895*22dc650dSSadaf Ebrahimi    ABCABC
4896*22dc650dSSadaf Ebrahimi 0: ABCABC
4897*22dc650dSSadaf Ebrahimi 1: ABC
4898*22dc650dSSadaf Ebrahimi
4899*22dc650dSSadaf Ebrahimi/(a+|b)*/i
4900*22dc650dSSadaf Ebrahimi    AB
4901*22dc650dSSadaf Ebrahimi 0: AB
4902*22dc650dSSadaf Ebrahimi 1: A
4903*22dc650dSSadaf Ebrahimi 2:
4904*22dc650dSSadaf Ebrahimi
4905*22dc650dSSadaf Ebrahimi/(a+|b){0,}/i
4906*22dc650dSSadaf Ebrahimi    AB
4907*22dc650dSSadaf Ebrahimi 0: AB
4908*22dc650dSSadaf Ebrahimi 1: A
4909*22dc650dSSadaf Ebrahimi 2:
4910*22dc650dSSadaf Ebrahimi
4911*22dc650dSSadaf Ebrahimi/(a+|b)+/i
4912*22dc650dSSadaf Ebrahimi    AB
4913*22dc650dSSadaf Ebrahimi 0: AB
4914*22dc650dSSadaf Ebrahimi 1: A
4915*22dc650dSSadaf Ebrahimi
4916*22dc650dSSadaf Ebrahimi/(a+|b){1,}/i
4917*22dc650dSSadaf Ebrahimi    AB
4918*22dc650dSSadaf Ebrahimi 0: AB
4919*22dc650dSSadaf Ebrahimi 1: A
4920*22dc650dSSadaf Ebrahimi
4921*22dc650dSSadaf Ebrahimi/(a+|b)?/i
4922*22dc650dSSadaf Ebrahimi    AB
4923*22dc650dSSadaf Ebrahimi 0: A
4924*22dc650dSSadaf Ebrahimi 1:
4925*22dc650dSSadaf Ebrahimi
4926*22dc650dSSadaf Ebrahimi/(a+|b){0,1}/i
4927*22dc650dSSadaf Ebrahimi    AB
4928*22dc650dSSadaf Ebrahimi 0: A
4929*22dc650dSSadaf Ebrahimi 1:
4930*22dc650dSSadaf Ebrahimi
4931*22dc650dSSadaf Ebrahimi/(a+|b){0,1}?/i
4932*22dc650dSSadaf Ebrahimi    AB
4933*22dc650dSSadaf Ebrahimi 0: A
4934*22dc650dSSadaf Ebrahimi 1:
4935*22dc650dSSadaf Ebrahimi
4936*22dc650dSSadaf Ebrahimi/[^ab]*/i
4937*22dc650dSSadaf Ebrahimi    CDE
4938*22dc650dSSadaf Ebrahimi 0: CDE
4939*22dc650dSSadaf Ebrahimi
4940*22dc650dSSadaf Ebrahimi/abc/i
4941*22dc650dSSadaf Ebrahimi
4942*22dc650dSSadaf Ebrahimi/a*/i
4943*22dc650dSSadaf Ebrahimi
4944*22dc650dSSadaf Ebrahimi/([abc])*d/i
4945*22dc650dSSadaf Ebrahimi    ABBBCD
4946*22dc650dSSadaf Ebrahimi 0: ABBBCD
4947*22dc650dSSadaf Ebrahimi
4948*22dc650dSSadaf Ebrahimi/([abc])*bcd/i
4949*22dc650dSSadaf Ebrahimi    ABCD
4950*22dc650dSSadaf Ebrahimi 0: ABCD
4951*22dc650dSSadaf Ebrahimi
4952*22dc650dSSadaf Ebrahimi/a|b|c|d|e/i
4953*22dc650dSSadaf Ebrahimi    E
4954*22dc650dSSadaf Ebrahimi 0: E
4955*22dc650dSSadaf Ebrahimi
4956*22dc650dSSadaf Ebrahimi/(a|b|c|d|e)f/i
4957*22dc650dSSadaf Ebrahimi    EF
4958*22dc650dSSadaf Ebrahimi 0: EF
4959*22dc650dSSadaf Ebrahimi
4960*22dc650dSSadaf Ebrahimi/abcd*efg/i
4961*22dc650dSSadaf Ebrahimi    ABCDEFG
4962*22dc650dSSadaf Ebrahimi 0: ABCDEFG
4963*22dc650dSSadaf Ebrahimi
4964*22dc650dSSadaf Ebrahimi/ab*/i
4965*22dc650dSSadaf Ebrahimi    XABYABBBZ
4966*22dc650dSSadaf Ebrahimi 0: AB
4967*22dc650dSSadaf Ebrahimi    XAYABBBZ
4968*22dc650dSSadaf Ebrahimi 0: A
4969*22dc650dSSadaf Ebrahimi
4970*22dc650dSSadaf Ebrahimi/(ab|cd)e/i
4971*22dc650dSSadaf Ebrahimi    ABCDE
4972*22dc650dSSadaf Ebrahimi 0: CDE
4973*22dc650dSSadaf Ebrahimi
4974*22dc650dSSadaf Ebrahimi/[abhgefdc]ij/i
4975*22dc650dSSadaf Ebrahimi    HIJ
4976*22dc650dSSadaf Ebrahimi 0: HIJ
4977*22dc650dSSadaf Ebrahimi
4978*22dc650dSSadaf Ebrahimi/^(ab|cd)e/i
4979*22dc650dSSadaf Ebrahimi\= Expect no match
4980*22dc650dSSadaf Ebrahimi    ABCDE
4981*22dc650dSSadaf EbrahimiNo match
4982*22dc650dSSadaf Ebrahimi
4983*22dc650dSSadaf Ebrahimi/(abc|)ef/i
4984*22dc650dSSadaf Ebrahimi    ABCDEF
4985*22dc650dSSadaf Ebrahimi 0: EF
4986*22dc650dSSadaf Ebrahimi
4987*22dc650dSSadaf Ebrahimi/(a|b)c*d/i
4988*22dc650dSSadaf Ebrahimi    ABCD
4989*22dc650dSSadaf Ebrahimi 0: BCD
4990*22dc650dSSadaf Ebrahimi
4991*22dc650dSSadaf Ebrahimi/(ab|ab*)bc/i
4992*22dc650dSSadaf Ebrahimi    ABC
4993*22dc650dSSadaf Ebrahimi 0: ABC
4994*22dc650dSSadaf Ebrahimi
4995*22dc650dSSadaf Ebrahimi/a([bc]*)c*/i
4996*22dc650dSSadaf Ebrahimi    ABC
4997*22dc650dSSadaf Ebrahimi 0: ABC
4998*22dc650dSSadaf Ebrahimi 1: A
4999*22dc650dSSadaf Ebrahimi
5000*22dc650dSSadaf Ebrahimi/a([bc]*)(c*d)/i
5001*22dc650dSSadaf Ebrahimi    ABCD
5002*22dc650dSSadaf Ebrahimi 0: ABCD
5003*22dc650dSSadaf Ebrahimi
5004*22dc650dSSadaf Ebrahimi/a([bc]+)(c*d)/i
5005*22dc650dSSadaf Ebrahimi    ABCD
5006*22dc650dSSadaf Ebrahimi 0: ABCD
5007*22dc650dSSadaf Ebrahimi
5008*22dc650dSSadaf Ebrahimi/a([bc]*)(c+d)/i
5009*22dc650dSSadaf Ebrahimi    ABCD
5010*22dc650dSSadaf Ebrahimi 0: ABCD
5011*22dc650dSSadaf Ebrahimi
5012*22dc650dSSadaf Ebrahimi/a[bcd]*dcdcde/i
5013*22dc650dSSadaf Ebrahimi    ADCDCDE
5014*22dc650dSSadaf Ebrahimi 0: ADCDCDE
5015*22dc650dSSadaf Ebrahimi
5016*22dc650dSSadaf Ebrahimi/a[bcd]+dcdcde/i
5017*22dc650dSSadaf Ebrahimi
5018*22dc650dSSadaf Ebrahimi/(ab|a)b*c/i
5019*22dc650dSSadaf Ebrahimi    ABC
5020*22dc650dSSadaf Ebrahimi 0: ABC
5021*22dc650dSSadaf Ebrahimi
5022*22dc650dSSadaf Ebrahimi/((a)(b)c)(d)/i
5023*22dc650dSSadaf Ebrahimi    ABCD
5024*22dc650dSSadaf Ebrahimi 0: ABCD
5025*22dc650dSSadaf Ebrahimi
5026*22dc650dSSadaf Ebrahimi/[a-zA-Z_][a-zA-Z0-9_]*/i
5027*22dc650dSSadaf Ebrahimi    ALPHA
5028*22dc650dSSadaf Ebrahimi 0: ALPHA
5029*22dc650dSSadaf Ebrahimi
5030*22dc650dSSadaf Ebrahimi/^a(bc+|b[eh])g|.h$/i
5031*22dc650dSSadaf Ebrahimi    ABH
5032*22dc650dSSadaf Ebrahimi 0: BH
5033*22dc650dSSadaf Ebrahimi
5034*22dc650dSSadaf Ebrahimi/(bc+d$|ef*g.|h?i(j|k))/i
5035*22dc650dSSadaf Ebrahimi    EFFGZ
5036*22dc650dSSadaf Ebrahimi 0: EFFGZ
5037*22dc650dSSadaf Ebrahimi    IJ
5038*22dc650dSSadaf Ebrahimi 0: IJ
5039*22dc650dSSadaf Ebrahimi    REFFGZ
5040*22dc650dSSadaf Ebrahimi 0: EFFGZ
5041*22dc650dSSadaf Ebrahimi\= Expect no match
5042*22dc650dSSadaf Ebrahimi    ADCDCDE
5043*22dc650dSSadaf EbrahimiNo match
5044*22dc650dSSadaf Ebrahimi    EFFG
5045*22dc650dSSadaf EbrahimiNo match
5046*22dc650dSSadaf Ebrahimi    BCDD
5047*22dc650dSSadaf EbrahimiNo match
5048*22dc650dSSadaf Ebrahimi
5049*22dc650dSSadaf Ebrahimi/((((((((((a))))))))))/i
5050*22dc650dSSadaf Ebrahimi    A
5051*22dc650dSSadaf Ebrahimi 0: A
5052*22dc650dSSadaf Ebrahimi
5053*22dc650dSSadaf Ebrahimi/(((((((((a)))))))))/i
5054*22dc650dSSadaf Ebrahimi    A
5055*22dc650dSSadaf Ebrahimi 0: A
5056*22dc650dSSadaf Ebrahimi
5057*22dc650dSSadaf Ebrahimi/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
5058*22dc650dSSadaf Ebrahimi    A
5059*22dc650dSSadaf Ebrahimi 0: A
5060*22dc650dSSadaf Ebrahimi
5061*22dc650dSSadaf Ebrahimi/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
5062*22dc650dSSadaf Ebrahimi    C
5063*22dc650dSSadaf Ebrahimi 0: C
5064*22dc650dSSadaf Ebrahimi
5065*22dc650dSSadaf Ebrahimi/multiple words of text/i
5066*22dc650dSSadaf Ebrahimi\= Expect no match
5067*22dc650dSSadaf Ebrahimi    AA
5068*22dc650dSSadaf EbrahimiNo match
5069*22dc650dSSadaf Ebrahimi    UH-UH
5070*22dc650dSSadaf EbrahimiNo match
5071*22dc650dSSadaf Ebrahimi
5072*22dc650dSSadaf Ebrahimi/multiple words/i
5073*22dc650dSSadaf Ebrahimi    MULTIPLE WORDS, YEAH
5074*22dc650dSSadaf Ebrahimi 0: MULTIPLE WORDS
5075*22dc650dSSadaf Ebrahimi
5076*22dc650dSSadaf Ebrahimi/(.*)c(.*)/i
5077*22dc650dSSadaf Ebrahimi    ABCDE
5078*22dc650dSSadaf Ebrahimi 0: ABCDE
5079*22dc650dSSadaf Ebrahimi
5080*22dc650dSSadaf Ebrahimi/\((.*), (.*)\)/i
5081*22dc650dSSadaf Ebrahimi    (A, B)
5082*22dc650dSSadaf Ebrahimi 0: (A, B)
5083*22dc650dSSadaf Ebrahimi
5084*22dc650dSSadaf Ebrahimi/[k]/i
5085*22dc650dSSadaf Ebrahimi
5086*22dc650dSSadaf Ebrahimi/abcd/i
5087*22dc650dSSadaf Ebrahimi    ABCD
5088*22dc650dSSadaf Ebrahimi 0: ABCD
5089*22dc650dSSadaf Ebrahimi
5090*22dc650dSSadaf Ebrahimi/a(bc)d/i
5091*22dc650dSSadaf Ebrahimi    ABCD
5092*22dc650dSSadaf Ebrahimi 0: ABCD
5093*22dc650dSSadaf Ebrahimi
5094*22dc650dSSadaf Ebrahimi/a[-]?c/i
5095*22dc650dSSadaf Ebrahimi    AC
5096*22dc650dSSadaf Ebrahimi 0: AC
5097*22dc650dSSadaf Ebrahimi
5098*22dc650dSSadaf Ebrahimi/a(?!b)./
5099*22dc650dSSadaf Ebrahimi    abad
5100*22dc650dSSadaf Ebrahimi 0: ad
5101*22dc650dSSadaf Ebrahimi
5102*22dc650dSSadaf Ebrahimi/a(?=d)./
5103*22dc650dSSadaf Ebrahimi    abad
5104*22dc650dSSadaf Ebrahimi 0: ad
5105*22dc650dSSadaf Ebrahimi
5106*22dc650dSSadaf Ebrahimi/a(?=c|d)./
5107*22dc650dSSadaf Ebrahimi    abad
5108*22dc650dSSadaf Ebrahimi 0: ad
5109*22dc650dSSadaf Ebrahimi
5110*22dc650dSSadaf Ebrahimi/a(?:b|c|d)(.)/
5111*22dc650dSSadaf Ebrahimi    ace
5112*22dc650dSSadaf Ebrahimi 0: ace
5113*22dc650dSSadaf Ebrahimi
5114*22dc650dSSadaf Ebrahimi/a(?:b|c|d)*(.)/
5115*22dc650dSSadaf Ebrahimi    ace
5116*22dc650dSSadaf Ebrahimi 0: ace
5117*22dc650dSSadaf Ebrahimi 1: ac
5118*22dc650dSSadaf Ebrahimi
5119*22dc650dSSadaf Ebrahimi/a(?:b|c|d)+?(.)/
5120*22dc650dSSadaf Ebrahimi    ace
5121*22dc650dSSadaf Ebrahimi 0: ace
5122*22dc650dSSadaf Ebrahimi    acdbcdbe
5123*22dc650dSSadaf Ebrahimi 0: acdbcdbe
5124*22dc650dSSadaf Ebrahimi 1: acdbcdb
5125*22dc650dSSadaf Ebrahimi 2: acdbcd
5126*22dc650dSSadaf Ebrahimi 3: acdbc
5127*22dc650dSSadaf Ebrahimi 4: acdb
5128*22dc650dSSadaf Ebrahimi 5: acd
5129*22dc650dSSadaf Ebrahimi
5130*22dc650dSSadaf Ebrahimi/a(?:b|c|d)+(.)/
5131*22dc650dSSadaf Ebrahimi    acdbcdbe
5132*22dc650dSSadaf Ebrahimi 0: acdbcdbe
5133*22dc650dSSadaf Ebrahimi 1: acdbcdb
5134*22dc650dSSadaf Ebrahimi 2: acdbcd
5135*22dc650dSSadaf Ebrahimi 3: acdbc
5136*22dc650dSSadaf Ebrahimi 4: acdb
5137*22dc650dSSadaf Ebrahimi 5: acd
5138*22dc650dSSadaf Ebrahimi
5139*22dc650dSSadaf Ebrahimi/a(?:b|c|d){2}(.)/
5140*22dc650dSSadaf Ebrahimi    acdbcdbe
5141*22dc650dSSadaf Ebrahimi 0: acdb
5142*22dc650dSSadaf Ebrahimi
5143*22dc650dSSadaf Ebrahimi/a(?:b|c|d){4,5}(.)/
5144*22dc650dSSadaf Ebrahimi    acdbcdbe
5145*22dc650dSSadaf Ebrahimi 0: acdbcdb
5146*22dc650dSSadaf Ebrahimi 1: acdbcd
5147*22dc650dSSadaf Ebrahimi
5148*22dc650dSSadaf Ebrahimi/a(?:b|c|d){4,5}?(.)/
5149*22dc650dSSadaf Ebrahimi    acdbcdbe
5150*22dc650dSSadaf Ebrahimi 0: acdbcdb
5151*22dc650dSSadaf Ebrahimi 1: acdbcd
5152*22dc650dSSadaf Ebrahimi
5153*22dc650dSSadaf Ebrahimi/((foo)|(bar))*/
5154*22dc650dSSadaf Ebrahimi    foobar
5155*22dc650dSSadaf Ebrahimi 0: foobar
5156*22dc650dSSadaf Ebrahimi 1: foo
5157*22dc650dSSadaf Ebrahimi 2:
5158*22dc650dSSadaf Ebrahimi
5159*22dc650dSSadaf Ebrahimi/a(?:b|c|d){6,7}(.)/
5160*22dc650dSSadaf Ebrahimi    acdbcdbe
5161*22dc650dSSadaf Ebrahimi 0: acdbcdbe
5162*22dc650dSSadaf Ebrahimi
5163*22dc650dSSadaf Ebrahimi/a(?:b|c|d){6,7}?(.)/
5164*22dc650dSSadaf Ebrahimi    acdbcdbe
5165*22dc650dSSadaf Ebrahimi 0: acdbcdbe
5166*22dc650dSSadaf Ebrahimi
5167*22dc650dSSadaf Ebrahimi/a(?:b|c|d){5,6}(.)/
5168*22dc650dSSadaf Ebrahimi    acdbcdbe
5169*22dc650dSSadaf Ebrahimi 0: acdbcdbe
5170*22dc650dSSadaf Ebrahimi 1: acdbcdb
5171*22dc650dSSadaf Ebrahimi
5172*22dc650dSSadaf Ebrahimi/a(?:b|c|d){5,6}?(.)/
5173*22dc650dSSadaf Ebrahimi    acdbcdbe
5174*22dc650dSSadaf Ebrahimi 0: acdbcdbe
5175*22dc650dSSadaf Ebrahimi 1: acdbcdb
5176*22dc650dSSadaf Ebrahimi
5177*22dc650dSSadaf Ebrahimi/a(?:b|c|d){5,7}(.)/
5178*22dc650dSSadaf Ebrahimi    acdbcdbe
5179*22dc650dSSadaf Ebrahimi 0: acdbcdbe
5180*22dc650dSSadaf Ebrahimi 1: acdbcdb
5181*22dc650dSSadaf Ebrahimi
5182*22dc650dSSadaf Ebrahimi/a(?:b|c|d){5,7}?(.)/
5183*22dc650dSSadaf Ebrahimi    acdbcdbe
5184*22dc650dSSadaf Ebrahimi 0: acdbcdbe
5185*22dc650dSSadaf Ebrahimi 1: acdbcdb
5186*22dc650dSSadaf Ebrahimi
5187*22dc650dSSadaf Ebrahimi/a(?:b|(c|e){1,2}?|d)+?(.)/
5188*22dc650dSSadaf Ebrahimi    ace
5189*22dc650dSSadaf Ebrahimi 0: ace
5190*22dc650dSSadaf Ebrahimi
5191*22dc650dSSadaf Ebrahimi/^(.+)?B/
5192*22dc650dSSadaf Ebrahimi    AB
5193*22dc650dSSadaf Ebrahimi 0: AB
5194*22dc650dSSadaf Ebrahimi
5195*22dc650dSSadaf Ebrahimi/^([^a-z])|(\^)$/
5196*22dc650dSSadaf Ebrahimi    .
5197*22dc650dSSadaf Ebrahimi 0: .
5198*22dc650dSSadaf Ebrahimi
5199*22dc650dSSadaf Ebrahimi/^[<>]&/
5200*22dc650dSSadaf Ebrahimi    <&OUT
5201*22dc650dSSadaf Ebrahimi 0: <&
5202*22dc650dSSadaf Ebrahimi
5203*22dc650dSSadaf Ebrahimi/(?:(f)(o)(o)|(b)(a)(r))*/
5204*22dc650dSSadaf Ebrahimi    foobar
5205*22dc650dSSadaf Ebrahimi 0: foobar
5206*22dc650dSSadaf Ebrahimi 1: foo
5207*22dc650dSSadaf Ebrahimi 2:
5208*22dc650dSSadaf Ebrahimi
5209*22dc650dSSadaf Ebrahimi/(?<=a)b/
5210*22dc650dSSadaf Ebrahimi    ab
5211*22dc650dSSadaf Ebrahimi 0: b
5212*22dc650dSSadaf Ebrahimi\= Expect no match
5213*22dc650dSSadaf Ebrahimi    cb
5214*22dc650dSSadaf EbrahimiNo match
5215*22dc650dSSadaf Ebrahimi    b
5216*22dc650dSSadaf EbrahimiNo match
5217*22dc650dSSadaf Ebrahimi
5218*22dc650dSSadaf Ebrahimi/(?<!c)b/
5219*22dc650dSSadaf Ebrahimi    ab
5220*22dc650dSSadaf Ebrahimi 0: b
5221*22dc650dSSadaf Ebrahimi    b
5222*22dc650dSSadaf Ebrahimi 0: b
5223*22dc650dSSadaf Ebrahimi    b
5224*22dc650dSSadaf Ebrahimi 0: b
5225*22dc650dSSadaf Ebrahimi
5226*22dc650dSSadaf Ebrahimi/(?:..)*a/
5227*22dc650dSSadaf Ebrahimi    aba
5228*22dc650dSSadaf Ebrahimi 0: aba
5229*22dc650dSSadaf Ebrahimi 1: a
5230*22dc650dSSadaf Ebrahimi
5231*22dc650dSSadaf Ebrahimi/(?:..)*?a/
5232*22dc650dSSadaf Ebrahimi    aba
5233*22dc650dSSadaf Ebrahimi 0: aba
5234*22dc650dSSadaf Ebrahimi 1: a
5235*22dc650dSSadaf Ebrahimi
5236*22dc650dSSadaf Ebrahimi/^(){3,5}/
5237*22dc650dSSadaf Ebrahimi    abc
5238*22dc650dSSadaf Ebrahimi 0:
5239*22dc650dSSadaf Ebrahimi
5240*22dc650dSSadaf Ebrahimi/^(a+)*ax/
5241*22dc650dSSadaf Ebrahimi    aax
5242*22dc650dSSadaf Ebrahimi 0: aax
5243*22dc650dSSadaf Ebrahimi
5244*22dc650dSSadaf Ebrahimi/^((a|b)+)*ax/
5245*22dc650dSSadaf Ebrahimi    aax
5246*22dc650dSSadaf Ebrahimi 0: aax
5247*22dc650dSSadaf Ebrahimi
5248*22dc650dSSadaf Ebrahimi/^((a|bc)+)*ax/
5249*22dc650dSSadaf Ebrahimi    aax
5250*22dc650dSSadaf Ebrahimi 0: aax
5251*22dc650dSSadaf Ebrahimi
5252*22dc650dSSadaf Ebrahimi/(a|x)*ab/
5253*22dc650dSSadaf Ebrahimi    cab
5254*22dc650dSSadaf Ebrahimi 0: ab
5255*22dc650dSSadaf Ebrahimi
5256*22dc650dSSadaf Ebrahimi/(a)*ab/
5257*22dc650dSSadaf Ebrahimi    cab
5258*22dc650dSSadaf Ebrahimi 0: ab
5259*22dc650dSSadaf Ebrahimi
5260*22dc650dSSadaf Ebrahimi/(?:(?i)a)b/
5261*22dc650dSSadaf Ebrahimi    ab
5262*22dc650dSSadaf Ebrahimi 0: ab
5263*22dc650dSSadaf Ebrahimi
5264*22dc650dSSadaf Ebrahimi/((?i)a)b/
5265*22dc650dSSadaf Ebrahimi    ab
5266*22dc650dSSadaf Ebrahimi 0: ab
5267*22dc650dSSadaf Ebrahimi
5268*22dc650dSSadaf Ebrahimi/(?:(?i)a)b/
5269*22dc650dSSadaf Ebrahimi    Ab
5270*22dc650dSSadaf Ebrahimi 0: Ab
5271*22dc650dSSadaf Ebrahimi
5272*22dc650dSSadaf Ebrahimi/((?i)a)b/
5273*22dc650dSSadaf Ebrahimi    Ab
5274*22dc650dSSadaf Ebrahimi 0: Ab
5275*22dc650dSSadaf Ebrahimi
5276*22dc650dSSadaf Ebrahimi/(?:(?i)a)b/
5277*22dc650dSSadaf Ebrahimi\= Expect no match
5278*22dc650dSSadaf Ebrahimi    cb
5279*22dc650dSSadaf EbrahimiNo match
5280*22dc650dSSadaf Ebrahimi    aB
5281*22dc650dSSadaf EbrahimiNo match
5282*22dc650dSSadaf Ebrahimi
5283*22dc650dSSadaf Ebrahimi/((?i)a)b/
5284*22dc650dSSadaf Ebrahimi
5285*22dc650dSSadaf Ebrahimi/(?i:a)b/
5286*22dc650dSSadaf Ebrahimi    ab
5287*22dc650dSSadaf Ebrahimi 0: ab
5288*22dc650dSSadaf Ebrahimi
5289*22dc650dSSadaf Ebrahimi/((?i:a))b/
5290*22dc650dSSadaf Ebrahimi    ab
5291*22dc650dSSadaf Ebrahimi 0: ab
5292*22dc650dSSadaf Ebrahimi
5293*22dc650dSSadaf Ebrahimi/(?i:a)b/
5294*22dc650dSSadaf Ebrahimi    Ab
5295*22dc650dSSadaf Ebrahimi 0: Ab
5296*22dc650dSSadaf Ebrahimi
5297*22dc650dSSadaf Ebrahimi/((?i:a))b/
5298*22dc650dSSadaf Ebrahimi    Ab
5299*22dc650dSSadaf Ebrahimi 0: Ab
5300*22dc650dSSadaf Ebrahimi
5301*22dc650dSSadaf Ebrahimi/(?i:a)b/
5302*22dc650dSSadaf Ebrahimi\= Expect no match
5303*22dc650dSSadaf Ebrahimi    aB
5304*22dc650dSSadaf EbrahimiNo match
5305*22dc650dSSadaf Ebrahimi    aB
5306*22dc650dSSadaf EbrahimiNo match
5307*22dc650dSSadaf Ebrahimi
5308*22dc650dSSadaf Ebrahimi/((?i:a))b/
5309*22dc650dSSadaf Ebrahimi
5310*22dc650dSSadaf Ebrahimi/(?:(?-i)a)b/i
5311*22dc650dSSadaf Ebrahimi    ab
5312*22dc650dSSadaf Ebrahimi 0: ab
5313*22dc650dSSadaf Ebrahimi
5314*22dc650dSSadaf Ebrahimi/((?-i)a)b/i
5315*22dc650dSSadaf Ebrahimi    ab
5316*22dc650dSSadaf Ebrahimi 0: ab
5317*22dc650dSSadaf Ebrahimi
5318*22dc650dSSadaf Ebrahimi/(?:(?-i)a)b/i
5319*22dc650dSSadaf Ebrahimi    aB
5320*22dc650dSSadaf Ebrahimi 0: aB
5321*22dc650dSSadaf Ebrahimi
5322*22dc650dSSadaf Ebrahimi/((?-i)a)b/i
5323*22dc650dSSadaf Ebrahimi    aB
5324*22dc650dSSadaf Ebrahimi 0: aB
5325*22dc650dSSadaf Ebrahimi
5326*22dc650dSSadaf Ebrahimi/(?:(?-i)a)b/i
5327*22dc650dSSadaf Ebrahimi    aB
5328*22dc650dSSadaf Ebrahimi 0: aB
5329*22dc650dSSadaf Ebrahimi\= Expect no match
5330*22dc650dSSadaf Ebrahimi    Ab
5331*22dc650dSSadaf EbrahimiNo match
5332*22dc650dSSadaf Ebrahimi
5333*22dc650dSSadaf Ebrahimi/((?-i)a)b/i
5334*22dc650dSSadaf Ebrahimi
5335*22dc650dSSadaf Ebrahimi/(?:(?-i)a)b/i
5336*22dc650dSSadaf Ebrahimi    aB
5337*22dc650dSSadaf Ebrahimi 0: aB
5338*22dc650dSSadaf Ebrahimi
5339*22dc650dSSadaf Ebrahimi/((?-i)a)b/i
5340*22dc650dSSadaf Ebrahimi    aB
5341*22dc650dSSadaf Ebrahimi 0: aB
5342*22dc650dSSadaf Ebrahimi
5343*22dc650dSSadaf Ebrahimi/(?:(?-i)a)b/i
5344*22dc650dSSadaf Ebrahimi\= Expect no match
5345*22dc650dSSadaf Ebrahimi    Ab
5346*22dc650dSSadaf EbrahimiNo match
5347*22dc650dSSadaf Ebrahimi    AB
5348*22dc650dSSadaf EbrahimiNo match
5349*22dc650dSSadaf Ebrahimi
5350*22dc650dSSadaf Ebrahimi/((?-i)a)b/i
5351*22dc650dSSadaf Ebrahimi
5352*22dc650dSSadaf Ebrahimi/(?-i:a)b/i
5353*22dc650dSSadaf Ebrahimi    ab
5354*22dc650dSSadaf Ebrahimi 0: ab
5355*22dc650dSSadaf Ebrahimi
5356*22dc650dSSadaf Ebrahimi/((?-i:a))b/i
5357*22dc650dSSadaf Ebrahimi    ab
5358*22dc650dSSadaf Ebrahimi 0: ab
5359*22dc650dSSadaf Ebrahimi
5360*22dc650dSSadaf Ebrahimi/(?-i:a)b/i
5361*22dc650dSSadaf Ebrahimi    aB
5362*22dc650dSSadaf Ebrahimi 0: aB
5363*22dc650dSSadaf Ebrahimi
5364*22dc650dSSadaf Ebrahimi/((?-i:a))b/i
5365*22dc650dSSadaf Ebrahimi    aB
5366*22dc650dSSadaf Ebrahimi 0: aB
5367*22dc650dSSadaf Ebrahimi
5368*22dc650dSSadaf Ebrahimi/(?-i:a)b/i
5369*22dc650dSSadaf Ebrahimi\= Expect no match
5370*22dc650dSSadaf Ebrahimi    AB
5371*22dc650dSSadaf EbrahimiNo match
5372*22dc650dSSadaf Ebrahimi    Ab
5373*22dc650dSSadaf EbrahimiNo match
5374*22dc650dSSadaf Ebrahimi
5375*22dc650dSSadaf Ebrahimi/((?-i:a))b/i
5376*22dc650dSSadaf Ebrahimi
5377*22dc650dSSadaf Ebrahimi/(?-i:a)b/i
5378*22dc650dSSadaf Ebrahimi    aB
5379*22dc650dSSadaf Ebrahimi 0: aB
5380*22dc650dSSadaf Ebrahimi
5381*22dc650dSSadaf Ebrahimi/((?-i:a))b/i
5382*22dc650dSSadaf Ebrahimi    aB
5383*22dc650dSSadaf Ebrahimi 0: aB
5384*22dc650dSSadaf Ebrahimi
5385*22dc650dSSadaf Ebrahimi/(?-i:a)b/i
5386*22dc650dSSadaf Ebrahimi\= Expect no match
5387*22dc650dSSadaf Ebrahimi    Ab
5388*22dc650dSSadaf EbrahimiNo match
5389*22dc650dSSadaf Ebrahimi    AB
5390*22dc650dSSadaf EbrahimiNo match
5391*22dc650dSSadaf Ebrahimi
5392*22dc650dSSadaf Ebrahimi/((?-i:a))b/i
5393*22dc650dSSadaf Ebrahimi
5394*22dc650dSSadaf Ebrahimi/((?-i:a.))b/i
5395*22dc650dSSadaf Ebrahimi\= Expect no match
5396*22dc650dSSadaf Ebrahimi    AB
5397*22dc650dSSadaf EbrahimiNo match
5398*22dc650dSSadaf Ebrahimi    a\nB
5399*22dc650dSSadaf EbrahimiNo match
5400*22dc650dSSadaf Ebrahimi
5401*22dc650dSSadaf Ebrahimi/((?s-i:a.))b/i
5402*22dc650dSSadaf Ebrahimi    a\nB
5403*22dc650dSSadaf Ebrahimi 0: a\x0aB
5404*22dc650dSSadaf Ebrahimi
5405*22dc650dSSadaf Ebrahimi/(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
5406*22dc650dSSadaf Ebrahimi    cabbbb
5407*22dc650dSSadaf Ebrahimi 0: cabbbb
5408*22dc650dSSadaf Ebrahimi
5409*22dc650dSSadaf Ebrahimi/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
5410*22dc650dSSadaf Ebrahimi    caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
5411*22dc650dSSadaf Ebrahimi 0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
5412*22dc650dSSadaf Ebrahimi
5413*22dc650dSSadaf Ebrahimi/foo\w*\d{4}baz/
5414*22dc650dSSadaf Ebrahimi    foobar1234baz
5415*22dc650dSSadaf Ebrahimi 0: foobar1234baz
5416*22dc650dSSadaf Ebrahimi
5417*22dc650dSSadaf Ebrahimi/x(~~)*(?:(?:F)?)?/
5418*22dc650dSSadaf Ebrahimi    x~~
5419*22dc650dSSadaf Ebrahimi 0: x~~
5420*22dc650dSSadaf Ebrahimi 1: x
5421*22dc650dSSadaf Ebrahimi
5422*22dc650dSSadaf Ebrahimi/^a(?#xxx){3}c/
5423*22dc650dSSadaf Ebrahimi    aaac
5424*22dc650dSSadaf Ebrahimi 0: aaac
5425*22dc650dSSadaf Ebrahimi
5426*22dc650dSSadaf Ebrahimi/^a (?#xxx) (?#yyy) {3}c/x
5427*22dc650dSSadaf Ebrahimi    aaac
5428*22dc650dSSadaf Ebrahimi 0: aaac
5429*22dc650dSSadaf Ebrahimi
5430*22dc650dSSadaf Ebrahimi/(?<![cd])b/
5431*22dc650dSSadaf Ebrahimi\= Expect no match
5432*22dc650dSSadaf Ebrahimi    B\nB
5433*22dc650dSSadaf EbrahimiNo match
5434*22dc650dSSadaf Ebrahimi    dbcb
5435*22dc650dSSadaf EbrahimiNo match
5436*22dc650dSSadaf Ebrahimi
5437*22dc650dSSadaf Ebrahimi/(?<![cd])[ab]/
5438*22dc650dSSadaf Ebrahimi    dbaacb
5439*22dc650dSSadaf Ebrahimi 0: a
5440*22dc650dSSadaf Ebrahimi
5441*22dc650dSSadaf Ebrahimi/(?<!(c|d))b/
5442*22dc650dSSadaf Ebrahimi
5443*22dc650dSSadaf Ebrahimi/(?<!(c|d))[ab]/
5444*22dc650dSSadaf Ebrahimi    dbaacb
5445*22dc650dSSadaf Ebrahimi 0: a
5446*22dc650dSSadaf Ebrahimi
5447*22dc650dSSadaf Ebrahimi/(?<!cd)[ab]/
5448*22dc650dSSadaf Ebrahimi    cdaccb
5449*22dc650dSSadaf Ebrahimi 0: b
5450*22dc650dSSadaf Ebrahimi
5451*22dc650dSSadaf Ebrahimi/^(?:a?b?)*$/
5452*22dc650dSSadaf Ebrahimi\= Expect no match
5453*22dc650dSSadaf Ebrahimi    dbcb
5454*22dc650dSSadaf EbrahimiNo match
5455*22dc650dSSadaf Ebrahimi    a--
5456*22dc650dSSadaf EbrahimiNo match
5457*22dc650dSSadaf Ebrahimi
5458*22dc650dSSadaf Ebrahimi/((?s)^a(.))((?m)^b$)/
5459*22dc650dSSadaf Ebrahimi    a\nb\nc\n
5460*22dc650dSSadaf Ebrahimi 0: a\x0ab
5461*22dc650dSSadaf Ebrahimi
5462*22dc650dSSadaf Ebrahimi/((?m)^b$)/
5463*22dc650dSSadaf Ebrahimi    a\nb\nc\n
5464*22dc650dSSadaf Ebrahimi 0: b
5465*22dc650dSSadaf Ebrahimi
5466*22dc650dSSadaf Ebrahimi/(?m)^b/
5467*22dc650dSSadaf Ebrahimi    a\nb\n
5468*22dc650dSSadaf Ebrahimi 0: b
5469*22dc650dSSadaf Ebrahimi
5470*22dc650dSSadaf Ebrahimi/(?m)^(b)/
5471*22dc650dSSadaf Ebrahimi    a\nb\n
5472*22dc650dSSadaf Ebrahimi 0: b
5473*22dc650dSSadaf Ebrahimi
5474*22dc650dSSadaf Ebrahimi/((?m)^b)/
5475*22dc650dSSadaf Ebrahimi    a\nb\n
5476*22dc650dSSadaf Ebrahimi 0: b
5477*22dc650dSSadaf Ebrahimi
5478*22dc650dSSadaf Ebrahimi/\n((?m)^b)/
5479*22dc650dSSadaf Ebrahimi    a\nb\n
5480*22dc650dSSadaf Ebrahimi 0: \x0ab
5481*22dc650dSSadaf Ebrahimi
5482*22dc650dSSadaf Ebrahimi/((?s).)c(?!.)/
5483*22dc650dSSadaf Ebrahimi    a\nb\nc\n
5484*22dc650dSSadaf Ebrahimi 0: \x0ac
5485*22dc650dSSadaf Ebrahimi    a\nb\nc\n
5486*22dc650dSSadaf Ebrahimi 0: \x0ac
5487*22dc650dSSadaf Ebrahimi
5488*22dc650dSSadaf Ebrahimi/((?s)b.)c(?!.)/
5489*22dc650dSSadaf Ebrahimi    a\nb\nc\n
5490*22dc650dSSadaf Ebrahimi 0: b\x0ac
5491*22dc650dSSadaf Ebrahimi    a\nb\nc\n
5492*22dc650dSSadaf Ebrahimi 0: b\x0ac
5493*22dc650dSSadaf Ebrahimi
5494*22dc650dSSadaf Ebrahimi/^b/
5495*22dc650dSSadaf Ebrahimi
5496*22dc650dSSadaf Ebrahimi/()^b/
5497*22dc650dSSadaf Ebrahimi\= Expect no match
5498*22dc650dSSadaf Ebrahimi    a\nb\nc\n
5499*22dc650dSSadaf EbrahimiNo match
5500*22dc650dSSadaf Ebrahimi    a\nb\nc\n
5501*22dc650dSSadaf EbrahimiNo match
5502*22dc650dSSadaf Ebrahimi
5503*22dc650dSSadaf Ebrahimi/((?m)^b)/
5504*22dc650dSSadaf Ebrahimi    a\nb\nc\n
5505*22dc650dSSadaf Ebrahimi 0: b
5506*22dc650dSSadaf Ebrahimi
5507*22dc650dSSadaf Ebrahimi/(?(?!a)a|b)/
5508*22dc650dSSadaf Ebrahimi
5509*22dc650dSSadaf Ebrahimi/(?(?!a)b|a)/
5510*22dc650dSSadaf Ebrahimi    a
5511*22dc650dSSadaf Ebrahimi 0: a
5512*22dc650dSSadaf Ebrahimi
5513*22dc650dSSadaf Ebrahimi/(?(?=a)b|a)/
5514*22dc650dSSadaf Ebrahimi\= Expect no match
5515*22dc650dSSadaf Ebrahimi    a
5516*22dc650dSSadaf EbrahimiNo match
5517*22dc650dSSadaf Ebrahimi    a
5518*22dc650dSSadaf EbrahimiNo match
5519*22dc650dSSadaf Ebrahimi
5520*22dc650dSSadaf Ebrahimi/(?(?=a)a|b)/
5521*22dc650dSSadaf Ebrahimi    a
5522*22dc650dSSadaf Ebrahimi 0: a
5523*22dc650dSSadaf Ebrahimi
5524*22dc650dSSadaf Ebrahimi/(\w+:)+/
5525*22dc650dSSadaf Ebrahimi    one:
5526*22dc650dSSadaf Ebrahimi 0: one:
5527*22dc650dSSadaf Ebrahimi
5528*22dc650dSSadaf Ebrahimi/$(?<=^(a))/
5529*22dc650dSSadaf Ebrahimi    a
5530*22dc650dSSadaf Ebrahimi 0:
5531*22dc650dSSadaf Ebrahimi
5532*22dc650dSSadaf Ebrahimi/([\w:]+::)?(\w+)$/
5533*22dc650dSSadaf Ebrahimi    abcd
5534*22dc650dSSadaf Ebrahimi 0: abcd
5535*22dc650dSSadaf Ebrahimi    xy:z:::abcd
5536*22dc650dSSadaf Ebrahimi 0: xy:z:::abcd
5537*22dc650dSSadaf Ebrahimi
5538*22dc650dSSadaf Ebrahimi/^[^bcd]*(c+)/
5539*22dc650dSSadaf Ebrahimi    aexycd
5540*22dc650dSSadaf Ebrahimi 0: aexyc
5541*22dc650dSSadaf Ebrahimi
5542*22dc650dSSadaf Ebrahimi/(a*)b+/
5543*22dc650dSSadaf Ebrahimi    caab
5544*22dc650dSSadaf Ebrahimi 0: aab
5545*22dc650dSSadaf Ebrahimi
5546*22dc650dSSadaf Ebrahimi/([\w:]+::)?(\w+)$/
5547*22dc650dSSadaf Ebrahimi    abcd
5548*22dc650dSSadaf Ebrahimi 0: abcd
5549*22dc650dSSadaf Ebrahimi    xy:z:::abcd
5550*22dc650dSSadaf Ebrahimi 0: xy:z:::abcd
5551*22dc650dSSadaf Ebrahimi\= Expect no match
5552*22dc650dSSadaf Ebrahimi    abcd:
5553*22dc650dSSadaf EbrahimiNo match
5554*22dc650dSSadaf Ebrahimi    abcd:
5555*22dc650dSSadaf EbrahimiNo match
5556*22dc650dSSadaf Ebrahimi
5557*22dc650dSSadaf Ebrahimi/^[^bcd]*(c+)/
5558*22dc650dSSadaf Ebrahimi    aexycd
5559*22dc650dSSadaf Ebrahimi 0: aexyc
5560*22dc650dSSadaf Ebrahimi
5561*22dc650dSSadaf Ebrahimi/(>a+)ab/
5562*22dc650dSSadaf Ebrahimi
5563*22dc650dSSadaf Ebrahimi/(?>a+)b/
5564*22dc650dSSadaf Ebrahimi    aaab
5565*22dc650dSSadaf Ebrahimi 0: aaab
5566*22dc650dSSadaf Ebrahimi
5567*22dc650dSSadaf Ebrahimi/([[:]+)/
5568*22dc650dSSadaf Ebrahimi    a:[b]:
5569*22dc650dSSadaf Ebrahimi 0: :[
5570*22dc650dSSadaf Ebrahimi
5571*22dc650dSSadaf Ebrahimi/([[=]+)/
5572*22dc650dSSadaf Ebrahimi    a=[b]=
5573*22dc650dSSadaf Ebrahimi 0: =[
5574*22dc650dSSadaf Ebrahimi
5575*22dc650dSSadaf Ebrahimi/([[.]+)/
5576*22dc650dSSadaf Ebrahimi    a.[b].
5577*22dc650dSSadaf Ebrahimi 0: .[
5578*22dc650dSSadaf Ebrahimi
5579*22dc650dSSadaf Ebrahimi/((?>a+)b)/
5580*22dc650dSSadaf Ebrahimi    aaab
5581*22dc650dSSadaf Ebrahimi 0: aaab
5582*22dc650dSSadaf Ebrahimi
5583*22dc650dSSadaf Ebrahimi/(?>(a+))b/
5584*22dc650dSSadaf Ebrahimi    aaab
5585*22dc650dSSadaf Ebrahimi 0: aaab
5586*22dc650dSSadaf Ebrahimi
5587*22dc650dSSadaf Ebrahimi/((?>[^()]+)|\([^()]*\))+/
5588*22dc650dSSadaf Ebrahimi    ((abc(ade)ufh()()x
5589*22dc650dSSadaf Ebrahimi 0: abc(ade)ufh()()x
5590*22dc650dSSadaf Ebrahimi 1: abc(ade)ufh()()
5591*22dc650dSSadaf Ebrahimi 2: abc(ade)ufh()
5592*22dc650dSSadaf Ebrahimi 3: abc(ade)ufh
5593*22dc650dSSadaf Ebrahimi 4: abc(ade)
5594*22dc650dSSadaf Ebrahimi 5: abc
5595*22dc650dSSadaf Ebrahimi
5596*22dc650dSSadaf Ebrahimi/a\Z/
5597*22dc650dSSadaf Ebrahimi\= Expect no match
5598*22dc650dSSadaf Ebrahimi    aaab
5599*22dc650dSSadaf EbrahimiNo match
5600*22dc650dSSadaf Ebrahimi    a\nb\n
5601*22dc650dSSadaf EbrahimiNo match
5602*22dc650dSSadaf Ebrahimi
5603*22dc650dSSadaf Ebrahimi/b\Z/
5604*22dc650dSSadaf Ebrahimi    a\nb\n
5605*22dc650dSSadaf Ebrahimi 0: b
5606*22dc650dSSadaf Ebrahimi
5607*22dc650dSSadaf Ebrahimi/b\z/
5608*22dc650dSSadaf Ebrahimi
5609*22dc650dSSadaf Ebrahimi/b\Z/
5610*22dc650dSSadaf Ebrahimi    a\nb
5611*22dc650dSSadaf Ebrahimi 0: b
5612*22dc650dSSadaf Ebrahimi
5613*22dc650dSSadaf Ebrahimi/b\z/
5614*22dc650dSSadaf Ebrahimi    a\nb
5615*22dc650dSSadaf Ebrahimi 0: b
5616*22dc650dSSadaf Ebrahimi
5617*22dc650dSSadaf Ebrahimi/(?>.*)(?<=(abcd|wxyz))/
5618*22dc650dSSadaf Ebrahimi    alphabetabcd
5619*22dc650dSSadaf Ebrahimi 0: alphabetabcd
5620*22dc650dSSadaf Ebrahimi    endingwxyz
5621*22dc650dSSadaf Ebrahimi 0: endingwxyz
5622*22dc650dSSadaf Ebrahimi\= Expect no match
5623*22dc650dSSadaf Ebrahimi    a rather long string that doesn't end with one of them
5624*22dc650dSSadaf EbrahimiNo match
5625*22dc650dSSadaf Ebrahimi
5626*22dc650dSSadaf Ebrahimi/word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
5627*22dc650dSSadaf Ebrahimi    word cat dog elephant mussel cow horse canary baboon snake shark otherword
5628*22dc650dSSadaf Ebrahimi 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
5629*22dc650dSSadaf Ebrahimi\= Expect no match
5630*22dc650dSSadaf Ebrahimi    word cat dog elephant mussel cow horse canary baboon snake shark
5631*22dc650dSSadaf EbrahimiNo match
5632*22dc650dSSadaf Ebrahimi
5633*22dc650dSSadaf Ebrahimi/word (?>[a-zA-Z0-9]+ ){0,30}otherword/
5634*22dc650dSSadaf Ebrahimi\= Expect no match
5635*22dc650dSSadaf Ebrahimi    word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope
5636*22dc650dSSadaf EbrahimiNo match
5637*22dc650dSSadaf Ebrahimi
5638*22dc650dSSadaf Ebrahimi/(?<=\d{3}(?!999))foo/
5639*22dc650dSSadaf Ebrahimi    999foo
5640*22dc650dSSadaf Ebrahimi 0: foo
5641*22dc650dSSadaf Ebrahimi    123999foo
5642*22dc650dSSadaf Ebrahimi 0: foo
5643*22dc650dSSadaf Ebrahimi\= Expect no match
5644*22dc650dSSadaf Ebrahimi    123abcfoo
5645*22dc650dSSadaf EbrahimiNo match
5646*22dc650dSSadaf Ebrahimi
5647*22dc650dSSadaf Ebrahimi/(?<=(?!...999)\d{3})foo/
5648*22dc650dSSadaf Ebrahimi    999foo
5649*22dc650dSSadaf Ebrahimi 0: foo
5650*22dc650dSSadaf Ebrahimi    123999foo
5651*22dc650dSSadaf Ebrahimi 0: foo
5652*22dc650dSSadaf Ebrahimi\= Expect no match
5653*22dc650dSSadaf Ebrahimi    123abcfoo
5654*22dc650dSSadaf EbrahimiNo match
5655*22dc650dSSadaf Ebrahimi
5656*22dc650dSSadaf Ebrahimi/(?<=\d{3}(?!999)...)foo/
5657*22dc650dSSadaf Ebrahimi    123abcfoo
5658*22dc650dSSadaf Ebrahimi 0: foo
5659*22dc650dSSadaf Ebrahimi    123456foo
5660*22dc650dSSadaf Ebrahimi 0: foo
5661*22dc650dSSadaf Ebrahimi\= Expect no match
5662*22dc650dSSadaf Ebrahimi    123999foo
5663*22dc650dSSadaf EbrahimiNo match
5664*22dc650dSSadaf Ebrahimi
5665*22dc650dSSadaf Ebrahimi/(?<=\d{3}...)(?<!999)foo/
5666*22dc650dSSadaf Ebrahimi    123abcfoo
5667*22dc650dSSadaf Ebrahimi 0: foo
5668*22dc650dSSadaf Ebrahimi    123456foo
5669*22dc650dSSadaf Ebrahimi 0: foo
5670*22dc650dSSadaf Ebrahimi\= Expect no match
5671*22dc650dSSadaf Ebrahimi    123999foo
5672*22dc650dSSadaf EbrahimiNo match
5673*22dc650dSSadaf Ebrahimi
5674*22dc650dSSadaf Ebrahimi/((Z)+|A)*/
5675*22dc650dSSadaf Ebrahimi    ZABCDEFG
5676*22dc650dSSadaf Ebrahimi 0: ZA
5677*22dc650dSSadaf Ebrahimi 1: Z
5678*22dc650dSSadaf Ebrahimi 2:
5679*22dc650dSSadaf Ebrahimi
5680*22dc650dSSadaf Ebrahimi/(Z()|A)*/
5681*22dc650dSSadaf Ebrahimi    ZABCDEFG
5682*22dc650dSSadaf Ebrahimi 0: ZA
5683*22dc650dSSadaf Ebrahimi 1: Z
5684*22dc650dSSadaf Ebrahimi 2:
5685*22dc650dSSadaf Ebrahimi
5686*22dc650dSSadaf Ebrahimi/(Z(())|A)*/
5687*22dc650dSSadaf Ebrahimi    ZABCDEFG
5688*22dc650dSSadaf Ebrahimi 0: ZA
5689*22dc650dSSadaf Ebrahimi 1: Z
5690*22dc650dSSadaf Ebrahimi 2:
5691*22dc650dSSadaf Ebrahimi
5692*22dc650dSSadaf Ebrahimi/((?>Z)+|A)*/
5693*22dc650dSSadaf Ebrahimi    ZABCDEFG
5694*22dc650dSSadaf Ebrahimi 0: ZA
5695*22dc650dSSadaf Ebrahimi 1: Z
5696*22dc650dSSadaf Ebrahimi 2:
5697*22dc650dSSadaf Ebrahimi
5698*22dc650dSSadaf Ebrahimi/((?>)+|A)*/
5699*22dc650dSSadaf Ebrahimi    ZABCDEFG
5700*22dc650dSSadaf Ebrahimi 0:
5701*22dc650dSSadaf Ebrahimi
5702*22dc650dSSadaf Ebrahimi/a*/g
5703*22dc650dSSadaf Ebrahimi    abbab
5704*22dc650dSSadaf Ebrahimi 0: a
5705*22dc650dSSadaf Ebrahimi 0:
5706*22dc650dSSadaf Ebrahimi 0:
5707*22dc650dSSadaf Ebrahimi 0: a
5708*22dc650dSSadaf Ebrahimi 0:
5709*22dc650dSSadaf Ebrahimi 0:
5710*22dc650dSSadaf Ebrahimi
5711*22dc650dSSadaf Ebrahimi/[[:space:]]+/
5712*22dc650dSSadaf Ebrahimi    > \x09\x0a\x0c\x0d\x0b<
5713*22dc650dSSadaf Ebrahimi 0:  \x09\x0a\x0c\x0d\x0b
5714*22dc650dSSadaf Ebrahimi
5715*22dc650dSSadaf Ebrahimi/[[:blank:]]+/
5716*22dc650dSSadaf Ebrahimi    > \x09\x0a\x0c\x0d\x0b<
5717*22dc650dSSadaf Ebrahimi 0:  \x09
5718*22dc650dSSadaf Ebrahimi
5719*22dc650dSSadaf Ebrahimi/[\s]+/
5720*22dc650dSSadaf Ebrahimi    > \x09\x0a\x0c\x0d\x0b<
5721*22dc650dSSadaf Ebrahimi 0:  \x09\x0a\x0c\x0d\x0b
5722*22dc650dSSadaf Ebrahimi
5723*22dc650dSSadaf Ebrahimi/\s+/
5724*22dc650dSSadaf Ebrahimi    > \x09\x0a\x0c\x0d\x0b<
5725*22dc650dSSadaf Ebrahimi 0:  \x09\x0a\x0c\x0d\x0b
5726*22dc650dSSadaf Ebrahimi
5727*22dc650dSSadaf Ebrahimi/ab/x
5728*22dc650dSSadaf Ebrahimi    ab
5729*22dc650dSSadaf Ebrahimi 0: ab
5730*22dc650dSSadaf Ebrahimi
5731*22dc650dSSadaf Ebrahimi/(?!\A)x/m
5732*22dc650dSSadaf Ebrahimi  a\nxb\n
5733*22dc650dSSadaf Ebrahimi 0: x
5734*22dc650dSSadaf Ebrahimi
5735*22dc650dSSadaf Ebrahimi/(?!^)x/m
5736*22dc650dSSadaf Ebrahimi\= Expect no match
5737*22dc650dSSadaf Ebrahimi    a\nxb\n
5738*22dc650dSSadaf EbrahimiNo match
5739*22dc650dSSadaf Ebrahimi
5740*22dc650dSSadaf Ebrahimi/abc\Qabc\Eabc/
5741*22dc650dSSadaf Ebrahimi    abcabcabc
5742*22dc650dSSadaf Ebrahimi 0: abcabcabc
5743*22dc650dSSadaf Ebrahimi
5744*22dc650dSSadaf Ebrahimi/abc\Q(*+|\Eabc/
5745*22dc650dSSadaf Ebrahimi    abc(*+|abc
5746*22dc650dSSadaf Ebrahimi 0: abc(*+|abc
5747*22dc650dSSadaf Ebrahimi
5748*22dc650dSSadaf Ebrahimi/   abc\Q abc\Eabc/x
5749*22dc650dSSadaf Ebrahimi    abc abcabc
5750*22dc650dSSadaf Ebrahimi 0: abc abcabc
5751*22dc650dSSadaf Ebrahimi\= Expect no match
5752*22dc650dSSadaf Ebrahimi    abcabcabc
5753*22dc650dSSadaf EbrahimiNo match
5754*22dc650dSSadaf Ebrahimi
5755*22dc650dSSadaf Ebrahimi/abc#comment
5756*22dc650dSSadaf Ebrahimi    \Q#not comment
5757*22dc650dSSadaf Ebrahimi    literal\E/x
5758*22dc650dSSadaf Ebrahimi    abc#not comment\n    literal
5759*22dc650dSSadaf Ebrahimi 0: abc#not comment\x0a    literal
5760*22dc650dSSadaf Ebrahimi
5761*22dc650dSSadaf Ebrahimi/abc#comment
5762*22dc650dSSadaf Ebrahimi    \Q#not comment
5763*22dc650dSSadaf Ebrahimi    literal/x
5764*22dc650dSSadaf Ebrahimi    abc#not comment\n    literal
5765*22dc650dSSadaf Ebrahimi 0: abc#not comment\x0a    literal
5766*22dc650dSSadaf Ebrahimi
5767*22dc650dSSadaf Ebrahimi/abc#comment
5768*22dc650dSSadaf Ebrahimi    \Q#not comment
5769*22dc650dSSadaf Ebrahimi    literal\E #more comment
5770*22dc650dSSadaf Ebrahimi    /x
5771*22dc650dSSadaf Ebrahimi    abc#not comment\n    literal
5772*22dc650dSSadaf Ebrahimi 0: abc#not comment\x0a    literal
5773*22dc650dSSadaf Ebrahimi
5774*22dc650dSSadaf Ebrahimi/abc#comment
5775*22dc650dSSadaf Ebrahimi    \Q#not comment
5776*22dc650dSSadaf Ebrahimi    literal\E #more comment/x
5777*22dc650dSSadaf Ebrahimi    abc#not comment\n    literal
5778*22dc650dSSadaf Ebrahimi 0: abc#not comment\x0a    literal
5779*22dc650dSSadaf Ebrahimi
5780*22dc650dSSadaf Ebrahimi/\Qabc\$xyz\E/
5781*22dc650dSSadaf Ebrahimi    abc\\\$xyz
5782*22dc650dSSadaf Ebrahimi 0: abc\$xyz
5783*22dc650dSSadaf Ebrahimi
5784*22dc650dSSadaf Ebrahimi/\Qabc\E\$\Qxyz\E/
5785*22dc650dSSadaf Ebrahimi    abc\$xyz
5786*22dc650dSSadaf Ebrahimi 0: abc$xyz
5787*22dc650dSSadaf Ebrahimi
5788*22dc650dSSadaf Ebrahimi/\Gabc/
5789*22dc650dSSadaf Ebrahimi    abc
5790*22dc650dSSadaf Ebrahimi 0: abc
5791*22dc650dSSadaf Ebrahimi\= Expect no match
5792*22dc650dSSadaf Ebrahimi    xyzabc
5793*22dc650dSSadaf EbrahimiNo match
5794*22dc650dSSadaf Ebrahimi
5795*22dc650dSSadaf Ebrahimi/\Gabc./g
5796*22dc650dSSadaf Ebrahimi    abc1abc2xyzabc3
5797*22dc650dSSadaf Ebrahimi 0: abc1
5798*22dc650dSSadaf Ebrahimi 0: abc2
5799*22dc650dSSadaf Ebrahimi
5800*22dc650dSSadaf Ebrahimi/abc./g
5801*22dc650dSSadaf Ebrahimi    abc1abc2xyzabc3
5802*22dc650dSSadaf Ebrahimi 0: abc1
5803*22dc650dSSadaf Ebrahimi 0: abc2
5804*22dc650dSSadaf Ebrahimi 0: abc3
5805*22dc650dSSadaf Ebrahimi
5806*22dc650dSSadaf Ebrahimi/a(?x: b c )d/
5807*22dc650dSSadaf Ebrahimi    XabcdY
5808*22dc650dSSadaf Ebrahimi 0: abcd
5809*22dc650dSSadaf Ebrahimi\= Expect no match
5810*22dc650dSSadaf Ebrahimi    Xa b c d Y
5811*22dc650dSSadaf EbrahimiNo match
5812*22dc650dSSadaf Ebrahimi
5813*22dc650dSSadaf Ebrahimi/((?x)x y z | a b c)/
5814*22dc650dSSadaf Ebrahimi    XabcY
5815*22dc650dSSadaf Ebrahimi 0: abc
5816*22dc650dSSadaf Ebrahimi    AxyzB
5817*22dc650dSSadaf Ebrahimi 0: xyz
5818*22dc650dSSadaf Ebrahimi
5819*22dc650dSSadaf Ebrahimi/(?i)AB(?-i)C/
5820*22dc650dSSadaf Ebrahimi    XabCY
5821*22dc650dSSadaf Ebrahimi 0: abC
5822*22dc650dSSadaf Ebrahimi\= Expect no match
5823*22dc650dSSadaf Ebrahimi    XabcY
5824*22dc650dSSadaf EbrahimiNo match
5825*22dc650dSSadaf Ebrahimi
5826*22dc650dSSadaf Ebrahimi/((?i)AB(?-i)C|D)E/
5827*22dc650dSSadaf Ebrahimi    abCE
5828*22dc650dSSadaf Ebrahimi 0: abCE
5829*22dc650dSSadaf Ebrahimi    DE
5830*22dc650dSSadaf Ebrahimi 0: DE
5831*22dc650dSSadaf Ebrahimi\= Expect no match
5832*22dc650dSSadaf Ebrahimi    abcE
5833*22dc650dSSadaf EbrahimiNo match
5834*22dc650dSSadaf Ebrahimi    abCe
5835*22dc650dSSadaf EbrahimiNo match
5836*22dc650dSSadaf Ebrahimi    dE
5837*22dc650dSSadaf EbrahimiNo match
5838*22dc650dSSadaf Ebrahimi    De
5839*22dc650dSSadaf EbrahimiNo match
5840*22dc650dSSadaf Ebrahimi
5841*22dc650dSSadaf Ebrahimi/[z\Qa-d]\E]/
5842*22dc650dSSadaf Ebrahimi    z
5843*22dc650dSSadaf Ebrahimi 0: z
5844*22dc650dSSadaf Ebrahimi    a
5845*22dc650dSSadaf Ebrahimi 0: a
5846*22dc650dSSadaf Ebrahimi    -
5847*22dc650dSSadaf Ebrahimi 0: -
5848*22dc650dSSadaf Ebrahimi    d
5849*22dc650dSSadaf Ebrahimi 0: d
5850*22dc650dSSadaf Ebrahimi    ]
5851*22dc650dSSadaf Ebrahimi 0: ]
5852*22dc650dSSadaf Ebrahimi\= Expect no match
5853*22dc650dSSadaf Ebrahimi    b
5854*22dc650dSSadaf EbrahimiNo match
5855*22dc650dSSadaf Ebrahimi
5856*22dc650dSSadaf Ebrahimi/(a+)*b/
5857*22dc650dSSadaf Ebrahimi\= Expect no match
5858*22dc650dSSadaf Ebrahimi    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
5859*22dc650dSSadaf EbrahimiNo match
5860*22dc650dSSadaf Ebrahimi
5861*22dc650dSSadaf Ebrahimi/(?i)reg(?:ul(?:[a�]|ae)r|ex)/
5862*22dc650dSSadaf Ebrahimi    REGular
5863*22dc650dSSadaf Ebrahimi 0: REGular
5864*22dc650dSSadaf Ebrahimi    regulaer
5865*22dc650dSSadaf Ebrahimi 0: regulaer
5866*22dc650dSSadaf Ebrahimi    Regex
5867*22dc650dSSadaf Ebrahimi 0: Regex
5868*22dc650dSSadaf Ebrahimi    regul�r
5869*22dc650dSSadaf Ebrahimi 0: regul\xe4r
5870*22dc650dSSadaf Ebrahimi
5871*22dc650dSSadaf Ebrahimi/����[�-��-�]+/
5872*22dc650dSSadaf Ebrahimi    �����
5873*22dc650dSSadaf Ebrahimi 0: \xc5\xe6\xe5\xe4\xe0
5874*22dc650dSSadaf Ebrahimi    �����
5875*22dc650dSSadaf Ebrahimi 0: \xc5\xe6\xe5\xe4\xff
5876*22dc650dSSadaf Ebrahimi    �����
5877*22dc650dSSadaf Ebrahimi 0: \xc5\xe6\xe5\xe4\xc0
5878*22dc650dSSadaf Ebrahimi    �����
5879*22dc650dSSadaf Ebrahimi 0: \xc5\xe6\xe5\xe4\xdf
5880*22dc650dSSadaf Ebrahimi
5881*22dc650dSSadaf Ebrahimi/(?<=Z)X./
5882*22dc650dSSadaf Ebrahimi    \x84XAZXB
5883*22dc650dSSadaf Ebrahimi 0: XB
5884*22dc650dSSadaf Ebrahimi
5885*22dc650dSSadaf Ebrahimi/^(?(2)a|(1)(2))+$/
5886*22dc650dSSadaf Ebrahimi    123a
5887*22dc650dSSadaf EbrahimiFailed: error -40: backreference condition or recursion test is not supported for DFA matching
5888*22dc650dSSadaf Ebrahimi
5889*22dc650dSSadaf Ebrahimi/(?<=a|bbbb)c/
5890*22dc650dSSadaf Ebrahimi    ac
5891*22dc650dSSadaf Ebrahimi 0: c
5892*22dc650dSSadaf Ebrahimi    bbbbc
5893*22dc650dSSadaf Ebrahimi 0: c
5894*22dc650dSSadaf Ebrahimi
5895*22dc650dSSadaf Ebrahimi/line\nbreak/
5896*22dc650dSSadaf Ebrahimi    this is a line\nbreak
5897*22dc650dSSadaf Ebrahimi 0: line\x0abreak
5898*22dc650dSSadaf Ebrahimi    line one\nthis is a line\nbreak in the second line
5899*22dc650dSSadaf Ebrahimi 0: line\x0abreak
5900*22dc650dSSadaf Ebrahimi
5901*22dc650dSSadaf Ebrahimi/line\nbreak/firstline
5902*22dc650dSSadaf Ebrahimi    this is a line\nbreak
5903*22dc650dSSadaf Ebrahimi 0: line\x0abreak
5904*22dc650dSSadaf Ebrahimi\= Expect no match
5905*22dc650dSSadaf Ebrahimi    line one\nthis is a line\nbreak in the second line
5906*22dc650dSSadaf EbrahimiNo match
5907*22dc650dSSadaf Ebrahimi
5908*22dc650dSSadaf Ebrahimi/line\nbreak/m,firstline
5909*22dc650dSSadaf Ebrahimi    this is a line\nbreak
5910*22dc650dSSadaf Ebrahimi 0: line\x0abreak
5911*22dc650dSSadaf Ebrahimi\= Expect no match
5912*22dc650dSSadaf Ebrahimi    line one\nthis is a line\nbreak in the second line
5913*22dc650dSSadaf EbrahimiNo match
5914*22dc650dSSadaf Ebrahimi
5915*22dc650dSSadaf Ebrahimi/1234/
5916*22dc650dSSadaf Ebrahimi    123\=ps
5917*22dc650dSSadaf EbrahimiPartial match: 123
5918*22dc650dSSadaf Ebrahimi\= Expect no match
5919*22dc650dSSadaf Ebrahimi    a4\=ps,dfa_restart
5920*22dc650dSSadaf EbrahimiNo match
5921*22dc650dSSadaf Ebrahimi
5922*22dc650dSSadaf Ebrahimi/1234/
5923*22dc650dSSadaf Ebrahimi    123\=ps
5924*22dc650dSSadaf EbrahimiPartial match: 123
5925*22dc650dSSadaf Ebrahimi    4\=ps,dfa_restart
5926*22dc650dSSadaf Ebrahimi 0: 4
5927*22dc650dSSadaf Ebrahimi
5928*22dc650dSSadaf Ebrahimi/^/gm
5929*22dc650dSSadaf Ebrahimi    a\nb\nc\n
5930*22dc650dSSadaf Ebrahimi 0:
5931*22dc650dSSadaf Ebrahimi 0:
5932*22dc650dSSadaf Ebrahimi 0:
5933*22dc650dSSadaf Ebrahimi    \
5934*22dc650dSSadaf Ebrahimi 0:
5935*22dc650dSSadaf Ebrahimi
5936*22dc650dSSadaf Ebrahimi/(?<=C\n)^/gm
5937*22dc650dSSadaf Ebrahimi    A\nC\nC\n
5938*22dc650dSSadaf Ebrahimi 0:
5939*22dc650dSSadaf Ebrahimi
5940*22dc650dSSadaf Ebrahimi/(?s)A?B/
5941*22dc650dSSadaf Ebrahimi    AB
5942*22dc650dSSadaf Ebrahimi 0: AB
5943*22dc650dSSadaf Ebrahimi    aB
5944*22dc650dSSadaf Ebrahimi 0: B
5945*22dc650dSSadaf Ebrahimi
5946*22dc650dSSadaf Ebrahimi/(?s)A*B/
5947*22dc650dSSadaf Ebrahimi    AB
5948*22dc650dSSadaf Ebrahimi 0: AB
5949*22dc650dSSadaf Ebrahimi    aB
5950*22dc650dSSadaf Ebrahimi 0: B
5951*22dc650dSSadaf Ebrahimi
5952*22dc650dSSadaf Ebrahimi/(?m)A?B/
5953*22dc650dSSadaf Ebrahimi    AB
5954*22dc650dSSadaf Ebrahimi 0: AB
5955*22dc650dSSadaf Ebrahimi    aB
5956*22dc650dSSadaf Ebrahimi 0: B
5957*22dc650dSSadaf Ebrahimi
5958*22dc650dSSadaf Ebrahimi/(?m)A*B/
5959*22dc650dSSadaf Ebrahimi    AB
5960*22dc650dSSadaf Ebrahimi 0: AB
5961*22dc650dSSadaf Ebrahimi    aB
5962*22dc650dSSadaf Ebrahimi 0: B
5963*22dc650dSSadaf Ebrahimi
5964*22dc650dSSadaf Ebrahimi/Content-Type\x3A[^\r\n]{6,}/
5965*22dc650dSSadaf Ebrahimi    Content-Type:xxxxxyyy
5966*22dc650dSSadaf Ebrahimi 0: Content-Type:xxxxxyyy
5967*22dc650dSSadaf Ebrahimi
5968*22dc650dSSadaf Ebrahimi/Content-Type\x3A[^\r\n]{6,}z/
5969*22dc650dSSadaf Ebrahimi    Content-Type:xxxxxyyyz
5970*22dc650dSSadaf Ebrahimi 0: Content-Type:xxxxxyyyz
5971*22dc650dSSadaf Ebrahimi
5972*22dc650dSSadaf Ebrahimi/Content-Type\x3A[^a]{6,}/
5973*22dc650dSSadaf Ebrahimi    Content-Type:xxxyyy
5974*22dc650dSSadaf Ebrahimi 0: Content-Type:xxxyyy
5975*22dc650dSSadaf Ebrahimi
5976*22dc650dSSadaf Ebrahimi/Content-Type\x3A[^a]{6,}z/
5977*22dc650dSSadaf Ebrahimi    Content-Type:xxxyyyz
5978*22dc650dSSadaf Ebrahimi 0: Content-Type:xxxyyyz
5979*22dc650dSSadaf Ebrahimi
5980*22dc650dSSadaf Ebrahimi/^abc/Im,newline=lf
5981*22dc650dSSadaf EbrahimiCapture group count = 0
5982*22dc650dSSadaf EbrahimiOptions: multiline
5983*22dc650dSSadaf EbrahimiForced newline is LF
5984*22dc650dSSadaf EbrahimiFirst code unit at start or follows newline
5985*22dc650dSSadaf EbrahimiLast code unit = 'c'
5986*22dc650dSSadaf EbrahimiSubject length lower bound = 3
5987*22dc650dSSadaf Ebrahimi    xyz\nabc
5988*22dc650dSSadaf Ebrahimi 0: abc
5989*22dc650dSSadaf Ebrahimi    xyz\r\nabc
5990*22dc650dSSadaf Ebrahimi 0: abc
5991*22dc650dSSadaf Ebrahimi\= Expect no match
5992*22dc650dSSadaf Ebrahimi    xyz\rabc
5993*22dc650dSSadaf EbrahimiNo match
5994*22dc650dSSadaf Ebrahimi    xyzabc\r
5995*22dc650dSSadaf EbrahimiNo match
5996*22dc650dSSadaf Ebrahimi    xyzabc\rpqr
5997*22dc650dSSadaf EbrahimiNo match
5998*22dc650dSSadaf Ebrahimi    xyzabc\r\n
5999*22dc650dSSadaf EbrahimiNo match
6000*22dc650dSSadaf Ebrahimi    xyzabc\r\npqr
6001*22dc650dSSadaf EbrahimiNo match
6002*22dc650dSSadaf Ebrahimi
6003*22dc650dSSadaf Ebrahimi/^abc/Im,newline=crlf
6004*22dc650dSSadaf EbrahimiCapture group count = 0
6005*22dc650dSSadaf EbrahimiOptions: multiline
6006*22dc650dSSadaf EbrahimiForced newline is CRLF
6007*22dc650dSSadaf EbrahimiFirst code unit at start or follows newline
6008*22dc650dSSadaf EbrahimiLast code unit = 'c'
6009*22dc650dSSadaf EbrahimiSubject length lower bound = 3
6010*22dc650dSSadaf Ebrahimi    xyz\r\nabclf>
6011*22dc650dSSadaf Ebrahimi 0: abc
6012*22dc650dSSadaf Ebrahimi\= Expect no match
6013*22dc650dSSadaf Ebrahimi    xyz\nabclf
6014*22dc650dSSadaf EbrahimiNo match
6015*22dc650dSSadaf Ebrahimi    xyz\rabclf
6016*22dc650dSSadaf EbrahimiNo match
6017*22dc650dSSadaf Ebrahimi
6018*22dc650dSSadaf Ebrahimi/^abc/Im,newline=cr
6019*22dc650dSSadaf EbrahimiCapture group count = 0
6020*22dc650dSSadaf EbrahimiOptions: multiline
6021*22dc650dSSadaf EbrahimiForced newline is CR
6022*22dc650dSSadaf EbrahimiFirst code unit at start or follows newline
6023*22dc650dSSadaf EbrahimiLast code unit = 'c'
6024*22dc650dSSadaf EbrahimiSubject length lower bound = 3
6025*22dc650dSSadaf Ebrahimi    xyz\rabc
6026*22dc650dSSadaf Ebrahimi 0: abc
6027*22dc650dSSadaf Ebrahimi\= Expect no match
6028*22dc650dSSadaf Ebrahimi    xyz\nabc
6029*22dc650dSSadaf EbrahimiNo match
6030*22dc650dSSadaf Ebrahimi    xyz\r\nabc
6031*22dc650dSSadaf EbrahimiNo match
6032*22dc650dSSadaf Ebrahimi
6033*22dc650dSSadaf Ebrahimi/.*/I,newline=lf
6034*22dc650dSSadaf EbrahimiCapture group count = 0
6035*22dc650dSSadaf EbrahimiMay match empty string
6036*22dc650dSSadaf EbrahimiForced newline is LF
6037*22dc650dSSadaf EbrahimiFirst code unit at start or follows newline
6038*22dc650dSSadaf EbrahimiSubject length lower bound = 0
6039*22dc650dSSadaf Ebrahimi    abc\ndef
6040*22dc650dSSadaf Ebrahimi 0: abc
6041*22dc650dSSadaf Ebrahimi    abc\rdef
6042*22dc650dSSadaf Ebrahimi 0: abc\x0ddef
6043*22dc650dSSadaf Ebrahimi    abc\r\ndef
6044*22dc650dSSadaf Ebrahimi 0: abc\x0d
6045*22dc650dSSadaf Ebrahimi
6046*22dc650dSSadaf Ebrahimi/.*/I,newline=cr
6047*22dc650dSSadaf EbrahimiCapture group count = 0
6048*22dc650dSSadaf EbrahimiMay match empty string
6049*22dc650dSSadaf EbrahimiForced newline is CR
6050*22dc650dSSadaf EbrahimiFirst code unit at start or follows newline
6051*22dc650dSSadaf EbrahimiSubject length lower bound = 0
6052*22dc650dSSadaf Ebrahimi    abc\ndef
6053*22dc650dSSadaf Ebrahimi 0: abc\x0adef
6054*22dc650dSSadaf Ebrahimi    abc\rdef
6055*22dc650dSSadaf Ebrahimi 0: abc
6056*22dc650dSSadaf Ebrahimi    abc\r\ndef
6057*22dc650dSSadaf Ebrahimi 0: abc
6058*22dc650dSSadaf Ebrahimi
6059*22dc650dSSadaf Ebrahimi/.*/I,newline=crlf
6060*22dc650dSSadaf EbrahimiCapture group count = 0
6061*22dc650dSSadaf EbrahimiMay match empty string
6062*22dc650dSSadaf EbrahimiForced newline is CRLF
6063*22dc650dSSadaf EbrahimiFirst code unit at start or follows newline
6064*22dc650dSSadaf EbrahimiSubject length lower bound = 0
6065*22dc650dSSadaf Ebrahimi    abc\ndef
6066*22dc650dSSadaf Ebrahimi 0: abc\x0adef
6067*22dc650dSSadaf Ebrahimi    abc\rdef
6068*22dc650dSSadaf Ebrahimi 0: abc\x0ddef
6069*22dc650dSSadaf Ebrahimi    abc\r\ndef
6070*22dc650dSSadaf Ebrahimi 0: abc
6071*22dc650dSSadaf Ebrahimi
6072*22dc650dSSadaf Ebrahimi/\w+(.)(.)?def/Is
6073*22dc650dSSadaf EbrahimiCapture group count = 2
6074*22dc650dSSadaf EbrahimiOptions: dotall
6075*22dc650dSSadaf EbrahimiStarting code units: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P
6076*22dc650dSSadaf Ebrahimi  Q R S T U V W X Y Z _ a b c d e f g h i j k l m n o p q r s t u v w x y z
6077*22dc650dSSadaf EbrahimiLast code unit = 'f'
6078*22dc650dSSadaf EbrahimiSubject length lower bound = 5
6079*22dc650dSSadaf Ebrahimi    abc\ndef
6080*22dc650dSSadaf Ebrahimi 0: abc\x0adef
6081*22dc650dSSadaf Ebrahimi    abc\rdef
6082*22dc650dSSadaf Ebrahimi 0: abc\x0ddef
6083*22dc650dSSadaf Ebrahimi    abc\r\ndef
6084*22dc650dSSadaf Ebrahimi 0: abc\x0d\x0adef
6085*22dc650dSSadaf Ebrahimi
6086*22dc650dSSadaf Ebrahimi/\w+(.)(.)?def/s
6087*22dc650dSSadaf Ebrahimi    abc\ndef
6088*22dc650dSSadaf Ebrahimi 0: abc\x0adef
6089*22dc650dSSadaf Ebrahimi    abc\rdef
6090*22dc650dSSadaf Ebrahimi 0: abc\x0ddef
6091*22dc650dSSadaf Ebrahimi    abc\r\ndef
6092*22dc650dSSadaf Ebrahimi 0: abc\x0d\x0adef
6093*22dc650dSSadaf Ebrahimi
6094*22dc650dSSadaf Ebrahimi/^\w+=.*(\\\n.*)*/
6095*22dc650dSSadaf Ebrahimi    abc=xyz\\\npqr
6096*22dc650dSSadaf Ebrahimi 0: abc=xyz\\x0apqr
6097*22dc650dSSadaf Ebrahimi 1: abc=xyz\\x0apq
6098*22dc650dSSadaf Ebrahimi 2: abc=xyz\\x0ap
6099*22dc650dSSadaf Ebrahimi 3: abc=xyz\\x0a
6100*22dc650dSSadaf Ebrahimi 4: abc=xyz\
6101*22dc650dSSadaf Ebrahimi 5: abc=xyz
6102*22dc650dSSadaf Ebrahimi 6: abc=xy
6103*22dc650dSSadaf Ebrahimi 7: abc=x
6104*22dc650dSSadaf Ebrahimi 8: abc=
6105*22dc650dSSadaf Ebrahimi
6106*22dc650dSSadaf Ebrahimi/^(a()*)*/
6107*22dc650dSSadaf Ebrahimi    aaaa
6108*22dc650dSSadaf Ebrahimi 0: aaaa
6109*22dc650dSSadaf Ebrahimi 1: aaa
6110*22dc650dSSadaf Ebrahimi 2: aa
6111*22dc650dSSadaf Ebrahimi 3: a
6112*22dc650dSSadaf Ebrahimi 4:
6113*22dc650dSSadaf Ebrahimi
6114*22dc650dSSadaf Ebrahimi/^(?:a(?:(?:))*)*/
6115*22dc650dSSadaf Ebrahimi    aaaa
6116*22dc650dSSadaf Ebrahimi 0: aaaa
6117*22dc650dSSadaf Ebrahimi 1: aaa
6118*22dc650dSSadaf Ebrahimi 2: aa
6119*22dc650dSSadaf Ebrahimi 3: a
6120*22dc650dSSadaf Ebrahimi 4:
6121*22dc650dSSadaf Ebrahimi
6122*22dc650dSSadaf Ebrahimi/^(a()+)+/
6123*22dc650dSSadaf Ebrahimi    aaaa
6124*22dc650dSSadaf Ebrahimi 0: aaaa
6125*22dc650dSSadaf Ebrahimi 1: aaa
6126*22dc650dSSadaf Ebrahimi 2: aa
6127*22dc650dSSadaf Ebrahimi 3: a
6128*22dc650dSSadaf Ebrahimi
6129*22dc650dSSadaf Ebrahimi/^(?:a(?:(?:))+)+/
6130*22dc650dSSadaf Ebrahimi    aaaa
6131*22dc650dSSadaf Ebrahimi 0: aaaa
6132*22dc650dSSadaf Ebrahimi 1: aaa
6133*22dc650dSSadaf Ebrahimi 2: aa
6134*22dc650dSSadaf Ebrahimi 3: a
6135*22dc650dSSadaf Ebrahimi
6136*22dc650dSSadaf Ebrahimi/(a|)*\d/
6137*22dc650dSSadaf Ebrahimi  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6138*22dc650dSSadaf Ebrahimi 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6139*22dc650dSSadaf Ebrahimi\= Expect no match
6140*22dc650dSSadaf Ebrahimi  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6141*22dc650dSSadaf EbrahimiNo match
6142*22dc650dSSadaf Ebrahimi
6143*22dc650dSSadaf Ebrahimi/(?>a|)*\d/
6144*22dc650dSSadaf Ebrahimi  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6145*22dc650dSSadaf Ebrahimi 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6146*22dc650dSSadaf Ebrahimi\= Expect no match
6147*22dc650dSSadaf Ebrahimi  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6148*22dc650dSSadaf EbrahimiNo match
6149*22dc650dSSadaf Ebrahimi
6150*22dc650dSSadaf Ebrahimi/(?:a|)*\d/
6151*22dc650dSSadaf Ebrahimi  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6152*22dc650dSSadaf Ebrahimi 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6153*22dc650dSSadaf Ebrahimi\= Expect no match
6154*22dc650dSSadaf Ebrahimi  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6155*22dc650dSSadaf EbrahimiNo match
6156*22dc650dSSadaf Ebrahimi
6157*22dc650dSSadaf Ebrahimi/^a.b/newline=lf
6158*22dc650dSSadaf Ebrahimi    a\rb
6159*22dc650dSSadaf Ebrahimi 0: a\x0db
6160*22dc650dSSadaf Ebrahimi\= Expect no match
6161*22dc650dSSadaf Ebrahimi    a\nb
6162*22dc650dSSadaf EbrahimiNo match
6163*22dc650dSSadaf Ebrahimi
6164*22dc650dSSadaf Ebrahimi/^a.b/newline=cr
6165*22dc650dSSadaf Ebrahimi    a\nb
6166*22dc650dSSadaf Ebrahimi 0: a\x0ab
6167*22dc650dSSadaf Ebrahimi\= Expect no match
6168*22dc650dSSadaf Ebrahimi    a\rb
6169*22dc650dSSadaf EbrahimiNo match
6170*22dc650dSSadaf Ebrahimi
6171*22dc650dSSadaf Ebrahimi/^a.b/newline=anycrlf
6172*22dc650dSSadaf Ebrahimi    a\x85b
6173*22dc650dSSadaf Ebrahimi 0: a\x85b
6174*22dc650dSSadaf Ebrahimi\= Expect no match
6175*22dc650dSSadaf Ebrahimi    a\rb
6176*22dc650dSSadaf EbrahimiNo match
6177*22dc650dSSadaf Ebrahimi
6178*22dc650dSSadaf Ebrahimi/^a.b/newline=any
6179*22dc650dSSadaf Ebrahimi\= Expect no match
6180*22dc650dSSadaf Ebrahimi    a\nb
6181*22dc650dSSadaf EbrahimiNo match
6182*22dc650dSSadaf Ebrahimi    a\rb
6183*22dc650dSSadaf EbrahimiNo match
6184*22dc650dSSadaf Ebrahimi    a\x85b
6185*22dc650dSSadaf EbrahimiNo match
6186*22dc650dSSadaf Ebrahimi
6187*22dc650dSSadaf Ebrahimi/^abc./gmx,newline=any
6188*22dc650dSSadaf Ebrahimi    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
6189*22dc650dSSadaf Ebrahimi 0: abc1
6190*22dc650dSSadaf Ebrahimi 0: abc2
6191*22dc650dSSadaf Ebrahimi 0: abc3
6192*22dc650dSSadaf Ebrahimi 0: abc4
6193*22dc650dSSadaf Ebrahimi 0: abc5
6194*22dc650dSSadaf Ebrahimi 0: abc6
6195*22dc650dSSadaf Ebrahimi 0: abc7
6196*22dc650dSSadaf Ebrahimi
6197*22dc650dSSadaf Ebrahimi/abc.$/gmx,newline=any
6198*22dc650dSSadaf Ebrahimi    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
6199*22dc650dSSadaf Ebrahimi 0: abc1
6200*22dc650dSSadaf Ebrahimi 0: abc2
6201*22dc650dSSadaf Ebrahimi 0: abc3
6202*22dc650dSSadaf Ebrahimi 0: abc4
6203*22dc650dSSadaf Ebrahimi 0: abc5
6204*22dc650dSSadaf Ebrahimi 0: abc6
6205*22dc650dSSadaf Ebrahimi 0: abc9
6206*22dc650dSSadaf Ebrahimi
6207*22dc650dSSadaf Ebrahimi/^a\Rb/bsr=unicode
6208*22dc650dSSadaf Ebrahimi    a\nb
6209*22dc650dSSadaf Ebrahimi 0: a\x0ab
6210*22dc650dSSadaf Ebrahimi    a\rb
6211*22dc650dSSadaf Ebrahimi 0: a\x0db
6212*22dc650dSSadaf Ebrahimi    a\r\nb
6213*22dc650dSSadaf Ebrahimi 0: a\x0d\x0ab
6214*22dc650dSSadaf Ebrahimi    a\x0bb
6215*22dc650dSSadaf Ebrahimi 0: a\x0bb
6216*22dc650dSSadaf Ebrahimi    a\x0cb
6217*22dc650dSSadaf Ebrahimi 0: a\x0cb
6218*22dc650dSSadaf Ebrahimi    a\x85b
6219*22dc650dSSadaf Ebrahimi 0: a\x85b
6220*22dc650dSSadaf Ebrahimi\= Expect no match
6221*22dc650dSSadaf Ebrahimi    a\n\rb
6222*22dc650dSSadaf EbrahimiNo match
6223*22dc650dSSadaf Ebrahimi
6224*22dc650dSSadaf Ebrahimi/^a\R*b/bsr=unicode
6225*22dc650dSSadaf Ebrahimi    ab
6226*22dc650dSSadaf Ebrahimi 0: ab
6227*22dc650dSSadaf Ebrahimi    a\nb
6228*22dc650dSSadaf Ebrahimi 0: a\x0ab
6229*22dc650dSSadaf Ebrahimi    a\rb
6230*22dc650dSSadaf Ebrahimi 0: a\x0db
6231*22dc650dSSadaf Ebrahimi    a\r\nb
6232*22dc650dSSadaf Ebrahimi 0: a\x0d\x0ab
6233*22dc650dSSadaf Ebrahimi    a\x0bb
6234*22dc650dSSadaf Ebrahimi 0: a\x0bb
6235*22dc650dSSadaf Ebrahimi    a\x0cb
6236*22dc650dSSadaf Ebrahimi 0: a\x0cb
6237*22dc650dSSadaf Ebrahimi    a\x85b
6238*22dc650dSSadaf Ebrahimi 0: a\x85b
6239*22dc650dSSadaf Ebrahimi    a\n\rb
6240*22dc650dSSadaf Ebrahimi 0: a\x0a\x0db
6241*22dc650dSSadaf Ebrahimi    a\n\r\x85\x0cb
6242*22dc650dSSadaf Ebrahimi 0: a\x0a\x0d\x85\x0cb
6243*22dc650dSSadaf Ebrahimi
6244*22dc650dSSadaf Ebrahimi/^a\R+b/bsr=unicode
6245*22dc650dSSadaf Ebrahimi    a\nb
6246*22dc650dSSadaf Ebrahimi 0: a\x0ab
6247*22dc650dSSadaf Ebrahimi    a\rb
6248*22dc650dSSadaf Ebrahimi 0: a\x0db
6249*22dc650dSSadaf Ebrahimi    a\r\nb
6250*22dc650dSSadaf Ebrahimi 0: a\x0d\x0ab
6251*22dc650dSSadaf Ebrahimi    a\x0bb
6252*22dc650dSSadaf Ebrahimi 0: a\x0bb
6253*22dc650dSSadaf Ebrahimi    a\x0cb
6254*22dc650dSSadaf Ebrahimi 0: a\x0cb
6255*22dc650dSSadaf Ebrahimi    a\x85b
6256*22dc650dSSadaf Ebrahimi 0: a\x85b
6257*22dc650dSSadaf Ebrahimi    a\n\rb
6258*22dc650dSSadaf Ebrahimi 0: a\x0a\x0db
6259*22dc650dSSadaf Ebrahimi    a\n\r\x85\x0cb
6260*22dc650dSSadaf Ebrahimi 0: a\x0a\x0d\x85\x0cb
6261*22dc650dSSadaf Ebrahimi\= Expect no match
6262*22dc650dSSadaf Ebrahimi    ab
6263*22dc650dSSadaf EbrahimiNo match
6264*22dc650dSSadaf Ebrahimi
6265*22dc650dSSadaf Ebrahimi/^a\R{1,3}b/bsr=unicode
6266*22dc650dSSadaf Ebrahimi    a\nb
6267*22dc650dSSadaf Ebrahimi 0: a\x0ab
6268*22dc650dSSadaf Ebrahimi    a\n\rb
6269*22dc650dSSadaf Ebrahimi 0: a\x0a\x0db
6270*22dc650dSSadaf Ebrahimi    a\n\r\x85b
6271*22dc650dSSadaf Ebrahimi 0: a\x0a\x0d\x85b
6272*22dc650dSSadaf Ebrahimi    a\r\n\r\nb
6273*22dc650dSSadaf Ebrahimi 0: a\x0d\x0a\x0d\x0ab
6274*22dc650dSSadaf Ebrahimi    a\r\n\r\n\r\nb
6275*22dc650dSSadaf Ebrahimi 0: a\x0d\x0a\x0d\x0a\x0d\x0ab
6276*22dc650dSSadaf Ebrahimi    a\n\r\n\rb
6277*22dc650dSSadaf Ebrahimi 0: a\x0a\x0d\x0a\x0db
6278*22dc650dSSadaf Ebrahimi    a\n\n\r\nb
6279*22dc650dSSadaf Ebrahimi 0: a\x0a\x0a\x0d\x0ab
6280*22dc650dSSadaf Ebrahimi\= Expect no match
6281*22dc650dSSadaf Ebrahimi    a\n\n\n\rb
6282*22dc650dSSadaf EbrahimiNo match
6283*22dc650dSSadaf Ebrahimi    a\r
6284*22dc650dSSadaf EbrahimiNo match
6285*22dc650dSSadaf Ebrahimi
6286*22dc650dSSadaf Ebrahimi/.+foo/
6287*22dc650dSSadaf Ebrahimi    afoo
6288*22dc650dSSadaf Ebrahimi 0: afoo
6289*22dc650dSSadaf Ebrahimi\= Expect no match
6290*22dc650dSSadaf Ebrahimi    \r\nfoo
6291*22dc650dSSadaf EbrahimiNo match
6292*22dc650dSSadaf Ebrahimi    \nfoo
6293*22dc650dSSadaf EbrahimiNo match
6294*22dc650dSSadaf Ebrahimi
6295*22dc650dSSadaf Ebrahimi/.+foo/newline=crlf
6296*22dc650dSSadaf Ebrahimi    afoo
6297*22dc650dSSadaf Ebrahimi 0: afoo
6298*22dc650dSSadaf Ebrahimi    \nfoo
6299*22dc650dSSadaf Ebrahimi 0: \x0afoo
6300*22dc650dSSadaf Ebrahimi\= Expect no match
6301*22dc650dSSadaf Ebrahimi    \r\nfoo
6302*22dc650dSSadaf EbrahimiNo match
6303*22dc650dSSadaf Ebrahimi
6304*22dc650dSSadaf Ebrahimi/.+foo/newline=any
6305*22dc650dSSadaf Ebrahimi    afoo
6306*22dc650dSSadaf Ebrahimi 0: afoo
6307*22dc650dSSadaf Ebrahimi\= Expect no match
6308*22dc650dSSadaf Ebrahimi    \nfoo
6309*22dc650dSSadaf EbrahimiNo match
6310*22dc650dSSadaf Ebrahimi    \r\nfoo
6311*22dc650dSSadaf EbrahimiNo match
6312*22dc650dSSadaf Ebrahimi
6313*22dc650dSSadaf Ebrahimi/.+foo/s
6314*22dc650dSSadaf Ebrahimi    afoo
6315*22dc650dSSadaf Ebrahimi 0: afoo
6316*22dc650dSSadaf Ebrahimi    \r\nfoo
6317*22dc650dSSadaf Ebrahimi 0: \x0d\x0afoo
6318*22dc650dSSadaf Ebrahimi    \nfoo
6319*22dc650dSSadaf Ebrahimi 0: \x0afoo
6320*22dc650dSSadaf Ebrahimi
6321*22dc650dSSadaf Ebrahimi/^$/gm,newline=any
6322*22dc650dSSadaf Ebrahimi    abc\r\rxyz
6323*22dc650dSSadaf Ebrahimi 0:
6324*22dc650dSSadaf Ebrahimi    abc\n\rxyz
6325*22dc650dSSadaf Ebrahimi 0:
6326*22dc650dSSadaf Ebrahimi\= Expect no match
6327*22dc650dSSadaf Ebrahimi    abc\r\nxyz
6328*22dc650dSSadaf EbrahimiNo match
6329*22dc650dSSadaf Ebrahimi
6330*22dc650dSSadaf Ebrahimi/^X/m
6331*22dc650dSSadaf Ebrahimi    XABC
6332*22dc650dSSadaf Ebrahimi 0: X
6333*22dc650dSSadaf Ebrahimi\= Expect no match
6334*22dc650dSSadaf Ebrahimi    XABC\=notbol
6335*22dc650dSSadaf EbrahimiNo match
6336*22dc650dSSadaf Ebrahimi
6337*22dc650dSSadaf Ebrahimi/(?m)^$/g,newline=any,aftertext
6338*22dc650dSSadaf Ebrahimi    abc\r\n\r\n
6339*22dc650dSSadaf Ebrahimi 0:
6340*22dc650dSSadaf Ebrahimi 0+ \x0d\x0a
6341*22dc650dSSadaf Ebrahimi
6342*22dc650dSSadaf Ebrahimi/(?m)^$|^\r\n/g,newline=any,aftertext
6343*22dc650dSSadaf Ebrahimi    abc\r\n\r\n
6344*22dc650dSSadaf Ebrahimi 0: \x0d\x0a
6345*22dc650dSSadaf Ebrahimi 0+
6346*22dc650dSSadaf Ebrahimi 1:
6347*22dc650dSSadaf Ebrahimi
6348*22dc650dSSadaf Ebrahimi/(?m)$/g,newline=any,aftertext
6349*22dc650dSSadaf Ebrahimi    abc\r\n\r\n
6350*22dc650dSSadaf Ebrahimi 0:
6351*22dc650dSSadaf Ebrahimi 0+ \x0d\x0a\x0d\x0a
6352*22dc650dSSadaf Ebrahimi 0:
6353*22dc650dSSadaf Ebrahimi 0+ \x0d\x0a
6354*22dc650dSSadaf Ebrahimi 0:
6355*22dc650dSSadaf Ebrahimi 0+
6356*22dc650dSSadaf Ebrahimi
6357*22dc650dSSadaf Ebrahimi/(?|(abc)|(xyz))/
6358*22dc650dSSadaf Ebrahimi   >abc<
6359*22dc650dSSadaf Ebrahimi 0: abc
6360*22dc650dSSadaf Ebrahimi   >xyz<
6361*22dc650dSSadaf Ebrahimi 0: xyz
6362*22dc650dSSadaf Ebrahimi
6363*22dc650dSSadaf Ebrahimi/(x)(?|(abc)|(xyz))(x)/
6364*22dc650dSSadaf Ebrahimi    xabcx
6365*22dc650dSSadaf Ebrahimi 0: xabcx
6366*22dc650dSSadaf Ebrahimi    xxyzx
6367*22dc650dSSadaf Ebrahimi 0: xxyzx
6368*22dc650dSSadaf Ebrahimi
6369*22dc650dSSadaf Ebrahimi/(x)(?|(abc)(pqr)|(xyz))(x)/
6370*22dc650dSSadaf Ebrahimi    xabcpqrx
6371*22dc650dSSadaf Ebrahimi 0: xabcpqrx
6372*22dc650dSSadaf Ebrahimi    xxyzx
6373*22dc650dSSadaf Ebrahimi 0: xxyzx
6374*22dc650dSSadaf Ebrahimi
6375*22dc650dSSadaf Ebrahimi/(?|(abc)|(xyz))(?1)/
6376*22dc650dSSadaf Ebrahimi    abcabc
6377*22dc650dSSadaf Ebrahimi 0: abcabc
6378*22dc650dSSadaf Ebrahimi    xyzabc
6379*22dc650dSSadaf Ebrahimi 0: xyzabc
6380*22dc650dSSadaf Ebrahimi\= Expect no match
6381*22dc650dSSadaf Ebrahimi    xyzxyz
6382*22dc650dSSadaf EbrahimiNo match
6383*22dc650dSSadaf Ebrahimi
6384*22dc650dSSadaf Ebrahimi/\H\h\V\v/
6385*22dc650dSSadaf Ebrahimi    X X\x0a
6386*22dc650dSSadaf Ebrahimi 0: X X\x0a
6387*22dc650dSSadaf Ebrahimi    X\x09X\x0b
6388*22dc650dSSadaf Ebrahimi 0: X\x09X\x0b
6389*22dc650dSSadaf Ebrahimi\= Expect no match
6390*22dc650dSSadaf Ebrahimi    \xa0 X\x0a
6391*22dc650dSSadaf EbrahimiNo match
6392*22dc650dSSadaf Ebrahimi
6393*22dc650dSSadaf Ebrahimi/\H*\h+\V?\v{3,4}/
6394*22dc650dSSadaf Ebrahimi    \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
6395*22dc650dSSadaf Ebrahimi 0: \x09 \xa0X\x0a\x0b\x0c\x0d
6396*22dc650dSSadaf Ebrahimi    \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
6397*22dc650dSSadaf Ebrahimi 0: \x09 \xa0\x0a\x0b\x0c\x0d
6398*22dc650dSSadaf Ebrahimi    \x09\x20\xa0\x0a\x0b\x0c
6399*22dc650dSSadaf Ebrahimi 0: \x09 \xa0\x0a\x0b\x0c
6400*22dc650dSSadaf Ebrahimi\= Expect no match
6401*22dc650dSSadaf Ebrahimi    \x09\x20\xa0\x0a\x0b
6402*22dc650dSSadaf EbrahimiNo match
6403*22dc650dSSadaf Ebrahimi
6404*22dc650dSSadaf Ebrahimi/\H{3,4}/
6405*22dc650dSSadaf Ebrahimi    XY  ABCDE
6406*22dc650dSSadaf Ebrahimi 0: ABCD
6407*22dc650dSSadaf Ebrahimi    XY  PQR ST
6408*22dc650dSSadaf Ebrahimi 0: PQR
6409*22dc650dSSadaf Ebrahimi
6410*22dc650dSSadaf Ebrahimi/.\h{3,4}./
6411*22dc650dSSadaf Ebrahimi    XY  AB    PQRS
6412*22dc650dSSadaf Ebrahimi 0: B    P
6413*22dc650dSSadaf Ebrahimi 1: B
6414*22dc650dSSadaf Ebrahimi
6415*22dc650dSSadaf Ebrahimi/\h*X\h?\H+Y\H?Z/
6416*22dc650dSSadaf Ebrahimi    >XNNNYZ
6417*22dc650dSSadaf Ebrahimi 0: XNNNYZ
6418*22dc650dSSadaf Ebrahimi    >  X NYQZ
6419*22dc650dSSadaf Ebrahimi 0:   X NYQZ
6420*22dc650dSSadaf Ebrahimi\= Expect no match
6421*22dc650dSSadaf Ebrahimi    >XYZ
6422*22dc650dSSadaf EbrahimiNo match
6423*22dc650dSSadaf Ebrahimi    >  X NY Z
6424*22dc650dSSadaf EbrahimiNo match
6425*22dc650dSSadaf Ebrahimi
6426*22dc650dSSadaf Ebrahimi/\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
6427*22dc650dSSadaf Ebrahimi    >XY\x0aZ\x0aA\x0bNN\x0c
6428*22dc650dSSadaf Ebrahimi 0: XY\x0aZ\x0aA\x0bNN\x0c
6429*22dc650dSSadaf Ebrahimi    >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
6430*22dc650dSSadaf Ebrahimi 0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
6431*22dc650dSSadaf Ebrahimi
6432*22dc650dSSadaf Ebrahimi/.+A/newline=crlf
6433*22dc650dSSadaf Ebrahimi\= Expect no match
6434*22dc650dSSadaf Ebrahimi    \r\nA
6435*22dc650dSSadaf EbrahimiNo match
6436*22dc650dSSadaf Ebrahimi
6437*22dc650dSSadaf Ebrahimi/\nA/newline=crlf
6438*22dc650dSSadaf Ebrahimi    \r\nA
6439*22dc650dSSadaf Ebrahimi 0: \x0aA
6440*22dc650dSSadaf Ebrahimi
6441*22dc650dSSadaf Ebrahimi/[\r\n]A/newline=crlf
6442*22dc650dSSadaf Ebrahimi    \r\nA
6443*22dc650dSSadaf Ebrahimi 0: \x0aA
6444*22dc650dSSadaf Ebrahimi
6445*22dc650dSSadaf Ebrahimi/(\r|\n)A/newline=crlf
6446*22dc650dSSadaf Ebrahimi    \r\nA
6447*22dc650dSSadaf Ebrahimi 0: \x0aA
6448*22dc650dSSadaf Ebrahimi
6449*22dc650dSSadaf Ebrahimi/a\Rb/I,bsr=anycrlf
6450*22dc650dSSadaf EbrahimiCapture group count = 0
6451*22dc650dSSadaf Ebrahimi\R matches CR, LF, or CRLF
6452*22dc650dSSadaf EbrahimiFirst code unit = 'a'
6453*22dc650dSSadaf EbrahimiLast code unit = 'b'
6454*22dc650dSSadaf EbrahimiSubject length lower bound = 3
6455*22dc650dSSadaf Ebrahimi    a\rb
6456*22dc650dSSadaf Ebrahimi 0: a\x0db
6457*22dc650dSSadaf Ebrahimi    a\nb
6458*22dc650dSSadaf Ebrahimi 0: a\x0ab
6459*22dc650dSSadaf Ebrahimi    a\r\nb
6460*22dc650dSSadaf Ebrahimi 0: a\x0d\x0ab
6461*22dc650dSSadaf Ebrahimi\= Expect no match
6462*22dc650dSSadaf Ebrahimi    a\x85b
6463*22dc650dSSadaf EbrahimiNo match
6464*22dc650dSSadaf Ebrahimi    a\x0bb
6465*22dc650dSSadaf EbrahimiNo match
6466*22dc650dSSadaf Ebrahimi
6467*22dc650dSSadaf Ebrahimi/a\Rb/I,bsr=unicode
6468*22dc650dSSadaf EbrahimiCapture group count = 0
6469*22dc650dSSadaf Ebrahimi\R matches any Unicode newline
6470*22dc650dSSadaf EbrahimiFirst code unit = 'a'
6471*22dc650dSSadaf EbrahimiLast code unit = 'b'
6472*22dc650dSSadaf EbrahimiSubject length lower bound = 3
6473*22dc650dSSadaf Ebrahimi    a\rb
6474*22dc650dSSadaf Ebrahimi 0: a\x0db
6475*22dc650dSSadaf Ebrahimi    a\nb
6476*22dc650dSSadaf Ebrahimi 0: a\x0ab
6477*22dc650dSSadaf Ebrahimi    a\r\nb
6478*22dc650dSSadaf Ebrahimi 0: a\x0d\x0ab
6479*22dc650dSSadaf Ebrahimi    a\x85b
6480*22dc650dSSadaf Ebrahimi 0: a\x85b
6481*22dc650dSSadaf Ebrahimi    a\x0bb
6482*22dc650dSSadaf Ebrahimi 0: a\x0bb
6483*22dc650dSSadaf Ebrahimi
6484*22dc650dSSadaf Ebrahimi/a\R?b/I,bsr=anycrlf
6485*22dc650dSSadaf EbrahimiCapture group count = 0
6486*22dc650dSSadaf Ebrahimi\R matches CR, LF, or CRLF
6487*22dc650dSSadaf EbrahimiFirst code unit = 'a'
6488*22dc650dSSadaf EbrahimiLast code unit = 'b'
6489*22dc650dSSadaf EbrahimiSubject length lower bound = 2
6490*22dc650dSSadaf Ebrahimi    a\rb
6491*22dc650dSSadaf Ebrahimi 0: a\x0db
6492*22dc650dSSadaf Ebrahimi    a\nb
6493*22dc650dSSadaf Ebrahimi 0: a\x0ab
6494*22dc650dSSadaf Ebrahimi    a\r\nb
6495*22dc650dSSadaf Ebrahimi 0: a\x0d\x0ab
6496*22dc650dSSadaf Ebrahimi\= Expect no match
6497*22dc650dSSadaf Ebrahimi    a\x85b
6498*22dc650dSSadaf EbrahimiNo match
6499*22dc650dSSadaf Ebrahimi    a\x0bb
6500*22dc650dSSadaf EbrahimiNo match
6501*22dc650dSSadaf Ebrahimi
6502*22dc650dSSadaf Ebrahimi/a\R?b/I,bsr=unicode
6503*22dc650dSSadaf EbrahimiCapture group count = 0
6504*22dc650dSSadaf Ebrahimi\R matches any Unicode newline
6505*22dc650dSSadaf EbrahimiFirst code unit = 'a'
6506*22dc650dSSadaf EbrahimiLast code unit = 'b'
6507*22dc650dSSadaf EbrahimiSubject length lower bound = 2
6508*22dc650dSSadaf Ebrahimi    a\rb
6509*22dc650dSSadaf Ebrahimi 0: a\x0db
6510*22dc650dSSadaf Ebrahimi    a\nb
6511*22dc650dSSadaf Ebrahimi 0: a\x0ab
6512*22dc650dSSadaf Ebrahimi    a\r\nb
6513*22dc650dSSadaf Ebrahimi 0: a\x0d\x0ab
6514*22dc650dSSadaf Ebrahimi    a\x85b
6515*22dc650dSSadaf Ebrahimi 0: a\x85b
6516*22dc650dSSadaf Ebrahimi    a\x0bb
6517*22dc650dSSadaf Ebrahimi 0: a\x0bb
6518*22dc650dSSadaf Ebrahimi
6519*22dc650dSSadaf Ebrahimi/a\R{2,4}b/I,bsr=anycrlf
6520*22dc650dSSadaf EbrahimiCapture group count = 0
6521*22dc650dSSadaf Ebrahimi\R matches CR, LF, or CRLF
6522*22dc650dSSadaf EbrahimiFirst code unit = 'a'
6523*22dc650dSSadaf EbrahimiLast code unit = 'b'
6524*22dc650dSSadaf EbrahimiSubject length lower bound = 4
6525*22dc650dSSadaf Ebrahimi    a\r\n\nb
6526*22dc650dSSadaf Ebrahimi 0: a\x0d\x0a\x0ab
6527*22dc650dSSadaf Ebrahimi    a\n\r\rb
6528*22dc650dSSadaf Ebrahimi 0: a\x0a\x0d\x0db
6529*22dc650dSSadaf Ebrahimi    a\r\n\r\n\r\n\r\nb
6530*22dc650dSSadaf Ebrahimi 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
6531*22dc650dSSadaf Ebrahimi\= Expect no match
6532*22dc650dSSadaf Ebrahimi    a\x0b\x0bb
6533*22dc650dSSadaf EbrahimiNo match
6534*22dc650dSSadaf Ebrahimi    a\x85\x85b
6535*22dc650dSSadaf EbrahimiNo match
6536*22dc650dSSadaf Ebrahimi
6537*22dc650dSSadaf Ebrahimi/a\R{2,4}b/I,bsr=unicode
6538*22dc650dSSadaf EbrahimiCapture group count = 0
6539*22dc650dSSadaf Ebrahimi\R matches any Unicode newline
6540*22dc650dSSadaf EbrahimiFirst code unit = 'a'
6541*22dc650dSSadaf EbrahimiLast code unit = 'b'
6542*22dc650dSSadaf EbrahimiSubject length lower bound = 4
6543*22dc650dSSadaf Ebrahimi    a\r\rb
6544*22dc650dSSadaf Ebrahimi 0: a\x0d\x0db
6545*22dc650dSSadaf Ebrahimi    a\n\n\nb
6546*22dc650dSSadaf Ebrahimi 0: a\x0a\x0a\x0ab
6547*22dc650dSSadaf Ebrahimi    a\r\n\n\r\rb
6548*22dc650dSSadaf Ebrahimi 0: a\x0d\x0a\x0a\x0d\x0db
6549*22dc650dSSadaf Ebrahimi    a\x85\x85b
6550*22dc650dSSadaf Ebrahimi 0: a\x85\x85b
6551*22dc650dSSadaf Ebrahimi    a\x0b\x0bb
6552*22dc650dSSadaf Ebrahimi 0: a\x0b\x0bb
6553*22dc650dSSadaf Ebrahimi\= Expect no match
6554*22dc650dSSadaf Ebrahimi    a\r\r\r\r\rb
6555*22dc650dSSadaf EbrahimiNo match
6556*22dc650dSSadaf Ebrahimi
6557*22dc650dSSadaf Ebrahimi/a(?!)|\wbc/
6558*22dc650dSSadaf Ebrahimi    abc
6559*22dc650dSSadaf Ebrahimi 0: abc
6560*22dc650dSSadaf Ebrahimi
6561*22dc650dSSadaf Ebrahimi/a[]b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
6562*22dc650dSSadaf Ebrahimi\= Expect no match
6563*22dc650dSSadaf Ebrahimi    ab
6564*22dc650dSSadaf EbrahimiNo match
6565*22dc650dSSadaf Ebrahimi
6566*22dc650dSSadaf Ebrahimi/a[]+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
6567*22dc650dSSadaf Ebrahimi\= Expect no match
6568*22dc650dSSadaf Ebrahimi    ab
6569*22dc650dSSadaf EbrahimiNo match
6570*22dc650dSSadaf Ebrahimi
6571*22dc650dSSadaf Ebrahimi/a[]*+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
6572*22dc650dSSadaf Ebrahimi\= Expect no match
6573*22dc650dSSadaf Ebrahimi    ab
6574*22dc650dSSadaf EbrahimiNo match
6575*22dc650dSSadaf Ebrahimi
6576*22dc650dSSadaf Ebrahimi/a[^]b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
6577*22dc650dSSadaf Ebrahimi    aXb
6578*22dc650dSSadaf Ebrahimi 0: aXb
6579*22dc650dSSadaf Ebrahimi    a\nb
6580*22dc650dSSadaf Ebrahimi 0: a\x0ab
6581*22dc650dSSadaf Ebrahimi\= Expect no match
6582*22dc650dSSadaf Ebrahimi    ab
6583*22dc650dSSadaf EbrahimiNo match
6584*22dc650dSSadaf Ebrahimi
6585*22dc650dSSadaf Ebrahimi/a[^]+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
6586*22dc650dSSadaf Ebrahimi    aXb
6587*22dc650dSSadaf Ebrahimi 0: aXb
6588*22dc650dSSadaf Ebrahimi    a\nX\nXb
6589*22dc650dSSadaf Ebrahimi 0: a\x0aX\x0aXb
6590*22dc650dSSadaf Ebrahimi\= Expect no match
6591*22dc650dSSadaf Ebrahimi    ab
6592*22dc650dSSadaf EbrahimiNo match
6593*22dc650dSSadaf Ebrahimi
6594*22dc650dSSadaf Ebrahimi/X$/dollar_endonly
6595*22dc650dSSadaf Ebrahimi    X
6596*22dc650dSSadaf Ebrahimi 0: X
6597*22dc650dSSadaf Ebrahimi\= Expect no match
6598*22dc650dSSadaf Ebrahimi    X\n
6599*22dc650dSSadaf EbrahimiNo match
6600*22dc650dSSadaf Ebrahimi
6601*22dc650dSSadaf Ebrahimi/X$/
6602*22dc650dSSadaf Ebrahimi    X
6603*22dc650dSSadaf Ebrahimi 0: X
6604*22dc650dSSadaf Ebrahimi    X\n
6605*22dc650dSSadaf Ebrahimi 0: X
6606*22dc650dSSadaf Ebrahimi
6607*22dc650dSSadaf Ebrahimi/xyz/auto_callout
6608*22dc650dSSadaf Ebrahimi  xyz
6609*22dc650dSSadaf Ebrahimi--->xyz
6610*22dc650dSSadaf Ebrahimi +0 ^       x
6611*22dc650dSSadaf Ebrahimi +1 ^^      y
6612*22dc650dSSadaf Ebrahimi +2 ^ ^     z
6613*22dc650dSSadaf Ebrahimi +3 ^  ^    End of pattern
6614*22dc650dSSadaf Ebrahimi 0: xyz
6615*22dc650dSSadaf Ebrahimi  abcxyz
6616*22dc650dSSadaf Ebrahimi--->abcxyz
6617*22dc650dSSadaf Ebrahimi +0    ^       x
6618*22dc650dSSadaf Ebrahimi +1    ^^      y
6619*22dc650dSSadaf Ebrahimi +2    ^ ^     z
6620*22dc650dSSadaf Ebrahimi +3    ^  ^    End of pattern
6621*22dc650dSSadaf Ebrahimi 0: xyz
6622*22dc650dSSadaf Ebrahimi\= Expect no match
6623*22dc650dSSadaf Ebrahimi  abc
6624*22dc650dSSadaf EbrahimiNo match
6625*22dc650dSSadaf Ebrahimi  abcxypqr
6626*22dc650dSSadaf EbrahimiNo match
6627*22dc650dSSadaf Ebrahimi
6628*22dc650dSSadaf Ebrahimi/xyz/auto_callout,no_start_optimize
6629*22dc650dSSadaf Ebrahimi  abcxyz
6630*22dc650dSSadaf Ebrahimi--->abcxyz
6631*22dc650dSSadaf Ebrahimi +0 ^          x
6632*22dc650dSSadaf Ebrahimi +0  ^         x
6633*22dc650dSSadaf Ebrahimi +0   ^        x
6634*22dc650dSSadaf Ebrahimi +0    ^       x
6635*22dc650dSSadaf Ebrahimi +1    ^^      y
6636*22dc650dSSadaf Ebrahimi +2    ^ ^     z
6637*22dc650dSSadaf Ebrahimi +3    ^  ^    End of pattern
6638*22dc650dSSadaf Ebrahimi 0: xyz
6639*22dc650dSSadaf Ebrahimi\= Expect no match
6640*22dc650dSSadaf Ebrahimi  abc
6641*22dc650dSSadaf Ebrahimi--->abc
6642*22dc650dSSadaf Ebrahimi +0 ^       x
6643*22dc650dSSadaf Ebrahimi +0  ^      x
6644*22dc650dSSadaf Ebrahimi +0   ^     x
6645*22dc650dSSadaf Ebrahimi +0    ^    x
6646*22dc650dSSadaf EbrahimiNo match
6647*22dc650dSSadaf Ebrahimi  abcxypqr
6648*22dc650dSSadaf Ebrahimi--->abcxypqr
6649*22dc650dSSadaf Ebrahimi +0 ^            x
6650*22dc650dSSadaf Ebrahimi +0  ^           x
6651*22dc650dSSadaf Ebrahimi +0   ^          x
6652*22dc650dSSadaf Ebrahimi +0    ^         x
6653*22dc650dSSadaf Ebrahimi +1    ^^        y
6654*22dc650dSSadaf Ebrahimi +2    ^ ^       z
6655*22dc650dSSadaf Ebrahimi +0     ^        x
6656*22dc650dSSadaf Ebrahimi +0      ^       x
6657*22dc650dSSadaf Ebrahimi +0       ^      x
6658*22dc650dSSadaf Ebrahimi +0        ^     x
6659*22dc650dSSadaf Ebrahimi +0         ^    x
6660*22dc650dSSadaf EbrahimiNo match
6661*22dc650dSSadaf Ebrahimi
6662*22dc650dSSadaf Ebrahimi/(*NO_START_OPT)xyz/auto_callout
6663*22dc650dSSadaf Ebrahimi  abcxyz
6664*22dc650dSSadaf Ebrahimi--->abcxyz
6665*22dc650dSSadaf Ebrahimi+15 ^          x
6666*22dc650dSSadaf Ebrahimi+15  ^         x
6667*22dc650dSSadaf Ebrahimi+15   ^        x
6668*22dc650dSSadaf Ebrahimi+15    ^       x
6669*22dc650dSSadaf Ebrahimi+16    ^^      y
6670*22dc650dSSadaf Ebrahimi+17    ^ ^     z
6671*22dc650dSSadaf Ebrahimi+18    ^  ^    End of pattern
6672*22dc650dSSadaf Ebrahimi 0: xyz
6673*22dc650dSSadaf Ebrahimi
6674*22dc650dSSadaf Ebrahimi/(?C)ab/
6675*22dc650dSSadaf Ebrahimi  ab
6676*22dc650dSSadaf Ebrahimi--->ab
6677*22dc650dSSadaf Ebrahimi  0 ^      a
6678*22dc650dSSadaf Ebrahimi 0: ab
6679*22dc650dSSadaf Ebrahimi  ab\=callout_none
6680*22dc650dSSadaf Ebrahimi 0: ab
6681*22dc650dSSadaf Ebrahimi
6682*22dc650dSSadaf Ebrahimi/ab/auto_callout
6683*22dc650dSSadaf Ebrahimi  ab
6684*22dc650dSSadaf Ebrahimi--->ab
6685*22dc650dSSadaf Ebrahimi +0 ^      a
6686*22dc650dSSadaf Ebrahimi +1 ^^     b
6687*22dc650dSSadaf Ebrahimi +2 ^ ^    End of pattern
6688*22dc650dSSadaf Ebrahimi 0: ab
6689*22dc650dSSadaf Ebrahimi  ab\=callout_none
6690*22dc650dSSadaf Ebrahimi 0: ab
6691*22dc650dSSadaf Ebrahimi
6692*22dc650dSSadaf Ebrahimi/^"((?(?=[a])[^"])|b)*"$/auto_callout
6693*22dc650dSSadaf Ebrahimi    "ab"
6694*22dc650dSSadaf Ebrahimi--->"ab"
6695*22dc650dSSadaf Ebrahimi +0 ^        ^
6696*22dc650dSSadaf Ebrahimi +1 ^        "
6697*22dc650dSSadaf Ebrahimi +2 ^^       (
6698*22dc650dSSadaf Ebrahimi+21 ^^       "
6699*22dc650dSSadaf Ebrahimi +3 ^^       (?
6700*22dc650dSSadaf Ebrahimi+18 ^^       b
6701*22dc650dSSadaf Ebrahimi +5 ^^       (?=
6702*22dc650dSSadaf Ebrahimi +8  ^       [a]
6703*22dc650dSSadaf Ebrahimi+11  ^^      )
6704*22dc650dSSadaf Ebrahimi+12 ^^       [^"]
6705*22dc650dSSadaf Ebrahimi+16 ^ ^      )
6706*22dc650dSSadaf Ebrahimi+17 ^ ^      |
6707*22dc650dSSadaf Ebrahimi+21 ^ ^      "
6708*22dc650dSSadaf Ebrahimi +3 ^ ^      (?
6709*22dc650dSSadaf Ebrahimi+18 ^ ^      b
6710*22dc650dSSadaf Ebrahimi +5 ^ ^      (?=
6711*22dc650dSSadaf Ebrahimi +8   ^      [a]
6712*22dc650dSSadaf Ebrahimi+19 ^  ^     )*
6713*22dc650dSSadaf Ebrahimi+21 ^  ^     "
6714*22dc650dSSadaf Ebrahimi +3 ^  ^     (?
6715*22dc650dSSadaf Ebrahimi+18 ^  ^     b
6716*22dc650dSSadaf Ebrahimi +5 ^  ^     (?=
6717*22dc650dSSadaf Ebrahimi +8    ^     [a]
6718*22dc650dSSadaf Ebrahimi+17 ^  ^     |
6719*22dc650dSSadaf Ebrahimi+22 ^   ^    $
6720*22dc650dSSadaf Ebrahimi+23 ^   ^    End of pattern
6721*22dc650dSSadaf Ebrahimi 0: "ab"
6722*22dc650dSSadaf Ebrahimi    "ab"\=callout_none
6723*22dc650dSSadaf Ebrahimi 0: "ab"
6724*22dc650dSSadaf Ebrahimi
6725*22dc650dSSadaf Ebrahimi/\d+X|9+Y/
6726*22dc650dSSadaf Ebrahimi    ++++123999\=ps
6727*22dc650dSSadaf EbrahimiPartial match: 123999
6728*22dc650dSSadaf Ebrahimi    ++++123999Y\=ps
6729*22dc650dSSadaf Ebrahimi 0: 999Y
6730*22dc650dSSadaf Ebrahimi
6731*22dc650dSSadaf Ebrahimi/Z(*F)/
6732*22dc650dSSadaf Ebrahimi\= Expect no match
6733*22dc650dSSadaf Ebrahimi    Z\=ps
6734*22dc650dSSadaf EbrahimiNo match
6735*22dc650dSSadaf Ebrahimi    ZA\=ps
6736*22dc650dSSadaf EbrahimiNo match
6737*22dc650dSSadaf Ebrahimi
6738*22dc650dSSadaf Ebrahimi/Z(?!)/
6739*22dc650dSSadaf Ebrahimi\= Expect no match
6740*22dc650dSSadaf Ebrahimi    Z\=ps
6741*22dc650dSSadaf EbrahimiNo match
6742*22dc650dSSadaf Ebrahimi    ZA\=ps
6743*22dc650dSSadaf EbrahimiNo match
6744*22dc650dSSadaf Ebrahimi
6745*22dc650dSSadaf Ebrahimi/dog(sbody)?/
6746*22dc650dSSadaf Ebrahimi    dogs\=ps
6747*22dc650dSSadaf Ebrahimi 0: dog
6748*22dc650dSSadaf Ebrahimi    dogs\=ph
6749*22dc650dSSadaf EbrahimiPartial match: dogs
6750*22dc650dSSadaf Ebrahimi
6751*22dc650dSSadaf Ebrahimi/dog(sbody)??/
6752*22dc650dSSadaf Ebrahimi    dogs\=ps
6753*22dc650dSSadaf Ebrahimi 0: dog
6754*22dc650dSSadaf Ebrahimi    dogs\=ph
6755*22dc650dSSadaf EbrahimiPartial match: dogs
6756*22dc650dSSadaf Ebrahimi
6757*22dc650dSSadaf Ebrahimi/dog|dogsbody/
6758*22dc650dSSadaf Ebrahimi    dogs\=ps
6759*22dc650dSSadaf Ebrahimi 0: dog
6760*22dc650dSSadaf Ebrahimi    dogs\=ph
6761*22dc650dSSadaf EbrahimiPartial match: dogs
6762*22dc650dSSadaf Ebrahimi
6763*22dc650dSSadaf Ebrahimi/dogsbody|dog/
6764*22dc650dSSadaf Ebrahimi    dogs\=ps
6765*22dc650dSSadaf Ebrahimi 0: dog
6766*22dc650dSSadaf Ebrahimi    dogs\=ph
6767*22dc650dSSadaf EbrahimiPartial match: dogs
6768*22dc650dSSadaf Ebrahimi
6769*22dc650dSSadaf Ebrahimi/Z(*F)Q|ZXY/
6770*22dc650dSSadaf Ebrahimi    Z\=ps
6771*22dc650dSSadaf EbrahimiPartial match: Z
6772*22dc650dSSadaf Ebrahimi\= Expect no match
6773*22dc650dSSadaf Ebrahimi    ZA\=ps
6774*22dc650dSSadaf EbrahimiNo match
6775*22dc650dSSadaf Ebrahimi    X\=ps
6776*22dc650dSSadaf EbrahimiNo match
6777*22dc650dSSadaf Ebrahimi
6778*22dc650dSSadaf Ebrahimi/\bthe cat\b/
6779*22dc650dSSadaf Ebrahimi    the cat\=ps
6780*22dc650dSSadaf Ebrahimi 0: the cat
6781*22dc650dSSadaf Ebrahimi    the cat\=ph
6782*22dc650dSSadaf EbrahimiPartial match: the cat
6783*22dc650dSSadaf Ebrahimi
6784*22dc650dSSadaf Ebrahimi/dog(sbody)?/
6785*22dc650dSSadaf Ebrahimi    dogs\=ps
6786*22dc650dSSadaf Ebrahimi 0: dog
6787*22dc650dSSadaf Ebrahimi    body\=dfa_restart
6788*22dc650dSSadaf Ebrahimi 0: body
6789*22dc650dSSadaf Ebrahimi
6790*22dc650dSSadaf Ebrahimi/dog(sbody)?/
6791*22dc650dSSadaf Ebrahimi    dogs\=ph
6792*22dc650dSSadaf EbrahimiPartial match: dogs
6793*22dc650dSSadaf Ebrahimi    body\=dfa_restart
6794*22dc650dSSadaf Ebrahimi 0: body
6795*22dc650dSSadaf Ebrahimi
6796*22dc650dSSadaf Ebrahimi/abc/
6797*22dc650dSSadaf Ebrahimi   abc\=ps
6798*22dc650dSSadaf Ebrahimi 0: abc
6799*22dc650dSSadaf Ebrahimi   abc\=ph
6800*22dc650dSSadaf Ebrahimi 0: abc
6801*22dc650dSSadaf Ebrahimi
6802*22dc650dSSadaf Ebrahimi/abc\K123/
6803*22dc650dSSadaf Ebrahimi    xyzabc123pqr
6804*22dc650dSSadaf EbrahimiFailed: error -42: pattern contains an item that is not supported for DFA matching
6805*22dc650dSSadaf Ebrahimi
6806*22dc650dSSadaf Ebrahimi/(?<=abc)123/allusedtext
6807*22dc650dSSadaf Ebrahimi    xyzabc123pqr
6808*22dc650dSSadaf Ebrahimi 0: abc123
6809*22dc650dSSadaf Ebrahimi    <<<
6810*22dc650dSSadaf Ebrahimi    xyzabc12\=ps
6811*22dc650dSSadaf EbrahimiPartial match: abc12
6812*22dc650dSSadaf Ebrahimi               <<<
6813*22dc650dSSadaf Ebrahimi    xyzabc12\=ph
6814*22dc650dSSadaf EbrahimiPartial match: abc12
6815*22dc650dSSadaf Ebrahimi               <<<
6816*22dc650dSSadaf Ebrahimi
6817*22dc650dSSadaf Ebrahimi/\babc\b/allusedtext
6818*22dc650dSSadaf Ebrahimi    +++abc+++
6819*22dc650dSSadaf Ebrahimi 0: +abc+
6820*22dc650dSSadaf Ebrahimi    <   >
6821*22dc650dSSadaf Ebrahimi    +++ab\=ps
6822*22dc650dSSadaf EbrahimiPartial match: +ab
6823*22dc650dSSadaf Ebrahimi               <
6824*22dc650dSSadaf Ebrahimi    +++ab\=ph
6825*22dc650dSSadaf EbrahimiPartial match: +ab
6826*22dc650dSSadaf Ebrahimi               <
6827*22dc650dSSadaf Ebrahimi
6828*22dc650dSSadaf Ebrahimi/(?=C)/g,aftertext
6829*22dc650dSSadaf Ebrahimi    ABCDECBA
6830*22dc650dSSadaf Ebrahimi 0:
6831*22dc650dSSadaf Ebrahimi 0+ CDECBA
6832*22dc650dSSadaf Ebrahimi 0:
6833*22dc650dSSadaf Ebrahimi 0+ CBA
6834*22dc650dSSadaf Ebrahimi
6835*22dc650dSSadaf Ebrahimi/(abc|def|xyz)/I
6836*22dc650dSSadaf EbrahimiCapture group count = 1
6837*22dc650dSSadaf EbrahimiStarting code units: a d x
6838*22dc650dSSadaf EbrahimiSubject length lower bound = 3
6839*22dc650dSSadaf Ebrahimi    terhjk;abcdaadsfe
6840*22dc650dSSadaf Ebrahimi 0: abc
6841*22dc650dSSadaf Ebrahimi    the quick xyz brown fox
6842*22dc650dSSadaf Ebrahimi 0: xyz
6843*22dc650dSSadaf Ebrahimi\= Expect no match
6844*22dc650dSSadaf Ebrahimi    thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
6845*22dc650dSSadaf EbrahimiNo match
6846*22dc650dSSadaf Ebrahimi
6847*22dc650dSSadaf Ebrahimi/(abc|def|xyz)/I,no_start_optimize
6848*22dc650dSSadaf EbrahimiCapture group count = 1
6849*22dc650dSSadaf EbrahimiOptions: no_start_optimize
6850*22dc650dSSadaf Ebrahimi    terhjk;abcdaadsfe
6851*22dc650dSSadaf Ebrahimi 0: abc
6852*22dc650dSSadaf Ebrahimi    the quick xyz brown fox
6853*22dc650dSSadaf Ebrahimi 0: xyz
6854*22dc650dSSadaf Ebrahimi\= Expect no match
6855*22dc650dSSadaf Ebrahimi    thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
6856*22dc650dSSadaf EbrahimiNo match
6857*22dc650dSSadaf Ebrahimi
6858*22dc650dSSadaf Ebrahimi/abcd*/aftertext
6859*22dc650dSSadaf Ebrahimi    xxxxabcd\=ps
6860*22dc650dSSadaf Ebrahimi 0: abcd
6861*22dc650dSSadaf Ebrahimi 0+
6862*22dc650dSSadaf Ebrahimi    xxxxabcd\=ph
6863*22dc650dSSadaf EbrahimiPartial match: abcd
6864*22dc650dSSadaf Ebrahimi    dddxxx\=dfa_restart
6865*22dc650dSSadaf Ebrahimi 0: ddd
6866*22dc650dSSadaf Ebrahimi 0+ xxx
6867*22dc650dSSadaf Ebrahimi    xxxxabcd\=ph
6868*22dc650dSSadaf EbrahimiPartial match: abcd
6869*22dc650dSSadaf Ebrahimi    xxx\=dfa_restart
6870*22dc650dSSadaf Ebrahimi 0:
6871*22dc650dSSadaf Ebrahimi 0+ xxx
6872*22dc650dSSadaf Ebrahimi
6873*22dc650dSSadaf Ebrahimi/abcd*/i
6874*22dc650dSSadaf Ebrahimi    xxxxabcd\=ps
6875*22dc650dSSadaf Ebrahimi 0: abcd
6876*22dc650dSSadaf Ebrahimi    xxxxabcd\=ph
6877*22dc650dSSadaf EbrahimiPartial match: abcd
6878*22dc650dSSadaf Ebrahimi    XXXXABCD\=ps
6879*22dc650dSSadaf Ebrahimi 0: ABCD
6880*22dc650dSSadaf Ebrahimi    XXXXABCD\=ph
6881*22dc650dSSadaf EbrahimiPartial match: ABCD
6882*22dc650dSSadaf Ebrahimi
6883*22dc650dSSadaf Ebrahimi/abc\d*/
6884*22dc650dSSadaf Ebrahimi    xxxxabc1\=ps
6885*22dc650dSSadaf Ebrahimi 0: abc1
6886*22dc650dSSadaf Ebrahimi    xxxxabc1\=ph
6887*22dc650dSSadaf EbrahimiPartial match: abc1
6888*22dc650dSSadaf Ebrahimi
6889*22dc650dSSadaf Ebrahimi/abc[de]*/
6890*22dc650dSSadaf Ebrahimi    xxxxabcde\=ps
6891*22dc650dSSadaf Ebrahimi 0: abcde
6892*22dc650dSSadaf Ebrahimi    xxxxabcde\=ph
6893*22dc650dSSadaf EbrahimiPartial match: abcde
6894*22dc650dSSadaf Ebrahimi
6895*22dc650dSSadaf Ebrahimi/(?:(?1)|B)(A(*F)|C)/
6896*22dc650dSSadaf Ebrahimi    ABCD
6897*22dc650dSSadaf Ebrahimi 0: BC
6898*22dc650dSSadaf Ebrahimi    CCD
6899*22dc650dSSadaf Ebrahimi 0: CC
6900*22dc650dSSadaf Ebrahimi\= Expect no match
6901*22dc650dSSadaf Ebrahimi    CAD
6902*22dc650dSSadaf EbrahimiNo match
6903*22dc650dSSadaf Ebrahimi
6904*22dc650dSSadaf Ebrahimi/^(?:(?1)|B)(A(*F)|C)/
6905*22dc650dSSadaf Ebrahimi    CCD
6906*22dc650dSSadaf Ebrahimi 0: CC
6907*22dc650dSSadaf Ebrahimi    BCD
6908*22dc650dSSadaf Ebrahimi 0: BC
6909*22dc650dSSadaf Ebrahimi\= Expect no match
6910*22dc650dSSadaf Ebrahimi    ABCD
6911*22dc650dSSadaf EbrahimiNo match
6912*22dc650dSSadaf Ebrahimi    CAD
6913*22dc650dSSadaf EbrahimiNo match
6914*22dc650dSSadaf Ebrahimi    BAD
6915*22dc650dSSadaf EbrahimiNo match
6916*22dc650dSSadaf Ebrahimi
6917*22dc650dSSadaf Ebrahimi/^(?!a(*SKIP)b)/
6918*22dc650dSSadaf Ebrahimi    ac
6919*22dc650dSSadaf EbrahimiFailed: error -42: pattern contains an item that is not supported for DFA matching
6920*22dc650dSSadaf Ebrahimi
6921*22dc650dSSadaf Ebrahimi/^(?=a(*SKIP)b|ac)/
6922*22dc650dSSadaf Ebrahimi    ac
6923*22dc650dSSadaf EbrahimiFailed: error -42: pattern contains an item that is not supported for DFA matching
6924*22dc650dSSadaf Ebrahimi
6925*22dc650dSSadaf Ebrahimi/^(?=a(*THEN)b|ac)/
6926*22dc650dSSadaf Ebrahimi    ac
6927*22dc650dSSadaf EbrahimiFailed: error -42: pattern contains an item that is not supported for DFA matching
6928*22dc650dSSadaf Ebrahimi
6929*22dc650dSSadaf Ebrahimi/^(?=a(*PRUNE)b)/
6930*22dc650dSSadaf Ebrahimi    ab
6931*22dc650dSSadaf EbrahimiFailed: error -42: pattern contains an item that is not supported for DFA matching
6932*22dc650dSSadaf Ebrahimi
6933*22dc650dSSadaf Ebrahimi/^(?(?!a(*SKIP)b))/
6934*22dc650dSSadaf Ebrahimi    ac
6935*22dc650dSSadaf EbrahimiFailed: error -42: pattern contains an item that is not supported for DFA matching
6936*22dc650dSSadaf Ebrahimi
6937*22dc650dSSadaf Ebrahimi/(?<=abc)def/allusedtext
6938*22dc650dSSadaf Ebrahimi    abc\=ph
6939*22dc650dSSadaf EbrahimiPartial match: abc
6940*22dc650dSSadaf Ebrahimi               <<<
6941*22dc650dSSadaf Ebrahimi
6942*22dc650dSSadaf Ebrahimi/abc$/
6943*22dc650dSSadaf Ebrahimi    abc
6944*22dc650dSSadaf Ebrahimi 0: abc
6945*22dc650dSSadaf Ebrahimi    abc\=ps
6946*22dc650dSSadaf Ebrahimi 0: abc
6947*22dc650dSSadaf Ebrahimi    abc\=ph
6948*22dc650dSSadaf EbrahimiPartial match: abc
6949*22dc650dSSadaf Ebrahimi
6950*22dc650dSSadaf Ebrahimi/abc$/m
6951*22dc650dSSadaf Ebrahimi    abc
6952*22dc650dSSadaf Ebrahimi 0: abc
6953*22dc650dSSadaf Ebrahimi    abc\n
6954*22dc650dSSadaf Ebrahimi 0: abc
6955*22dc650dSSadaf Ebrahimi    abc\=ph
6956*22dc650dSSadaf EbrahimiPartial match: abc
6957*22dc650dSSadaf Ebrahimi    abc\n\=ph
6958*22dc650dSSadaf Ebrahimi 0: abc
6959*22dc650dSSadaf Ebrahimi    abc\=ps
6960*22dc650dSSadaf Ebrahimi 0: abc
6961*22dc650dSSadaf Ebrahimi    abc\n\=ps
6962*22dc650dSSadaf Ebrahimi 0: abc
6963*22dc650dSSadaf Ebrahimi
6964*22dc650dSSadaf Ebrahimi/abc\z/
6965*22dc650dSSadaf Ebrahimi    abc
6966*22dc650dSSadaf Ebrahimi 0: abc
6967*22dc650dSSadaf Ebrahimi    abc\=ps
6968*22dc650dSSadaf Ebrahimi 0: abc
6969*22dc650dSSadaf Ebrahimi    abc\=ph
6970*22dc650dSSadaf EbrahimiPartial match: abc
6971*22dc650dSSadaf Ebrahimi
6972*22dc650dSSadaf Ebrahimi/abc\Z/
6973*22dc650dSSadaf Ebrahimi    abc
6974*22dc650dSSadaf Ebrahimi 0: abc
6975*22dc650dSSadaf Ebrahimi    abc\=ps
6976*22dc650dSSadaf Ebrahimi 0: abc
6977*22dc650dSSadaf Ebrahimi    abc\=ph
6978*22dc650dSSadaf EbrahimiPartial match: abc
6979*22dc650dSSadaf Ebrahimi
6980*22dc650dSSadaf Ebrahimi/abc\b/
6981*22dc650dSSadaf Ebrahimi    abc
6982*22dc650dSSadaf Ebrahimi 0: abc
6983*22dc650dSSadaf Ebrahimi    abc\=ps
6984*22dc650dSSadaf Ebrahimi 0: abc
6985*22dc650dSSadaf Ebrahimi    abc\=ph
6986*22dc650dSSadaf EbrahimiPartial match: abc
6987*22dc650dSSadaf Ebrahimi
6988*22dc650dSSadaf Ebrahimi/abc\B/
6989*22dc650dSSadaf Ebrahimi    abc\=ps
6990*22dc650dSSadaf EbrahimiPartial match: abc
6991*22dc650dSSadaf Ebrahimi    abc\=ph
6992*22dc650dSSadaf EbrahimiPartial match: abc
6993*22dc650dSSadaf Ebrahimi\= Expect no match
6994*22dc650dSSadaf Ebrahimi    abc
6995*22dc650dSSadaf EbrahimiNo match
6996*22dc650dSSadaf Ebrahimi
6997*22dc650dSSadaf Ebrahimi/.+/
6998*22dc650dSSadaf Ebrahimi    abc\=offset=0
6999*22dc650dSSadaf Ebrahimi 0: abc
7000*22dc650dSSadaf Ebrahimi    abc\=offset=1
7001*22dc650dSSadaf Ebrahimi 0: bc
7002*22dc650dSSadaf Ebrahimi    abc\=offset=2
7003*22dc650dSSadaf Ebrahimi 0: c
7004*22dc650dSSadaf Ebrahimi\= Bad offsets
7005*22dc650dSSadaf Ebrahimi    abc\=offset=4
7006*22dc650dSSadaf EbrahimiFailed: error -33: bad offset value
7007*22dc650dSSadaf Ebrahimi    abc\=offset=-4
7008*22dc650dSSadaf Ebrahimi** Invalid value in 'offset=-4'
7009*22dc650dSSadaf Ebrahimi\= Expect no match
7010*22dc650dSSadaf Ebrahimi    abc\=offset=3
7011*22dc650dSSadaf EbrahimiNo match
7012*22dc650dSSadaf Ebrahimi
7013*22dc650dSSadaf Ebrahimi/^(?:a)++\w/
7014*22dc650dSSadaf Ebrahimi     aaaab
7015*22dc650dSSadaf Ebrahimi 0: aaaab
7016*22dc650dSSadaf Ebrahimi\= Expect no match
7017*22dc650dSSadaf Ebrahimi     aaaa
7018*22dc650dSSadaf EbrahimiNo match
7019*22dc650dSSadaf Ebrahimi     bbb
7020*22dc650dSSadaf EbrahimiNo match
7021*22dc650dSSadaf Ebrahimi
7022*22dc650dSSadaf Ebrahimi/^(?:aa|(?:a)++\w)/
7023*22dc650dSSadaf Ebrahimi     aaaab
7024*22dc650dSSadaf Ebrahimi 0: aaaab
7025*22dc650dSSadaf Ebrahimi 1: aa
7026*22dc650dSSadaf Ebrahimi     aaaa
7027*22dc650dSSadaf Ebrahimi 0: aa
7028*22dc650dSSadaf Ebrahimi\= Expect no match
7029*22dc650dSSadaf Ebrahimi     bbb
7030*22dc650dSSadaf EbrahimiNo match
7031*22dc650dSSadaf Ebrahimi
7032*22dc650dSSadaf Ebrahimi/^(?:a)*+\w/
7033*22dc650dSSadaf Ebrahimi     aaaab
7034*22dc650dSSadaf Ebrahimi 0: aaaab
7035*22dc650dSSadaf Ebrahimi     bbb
7036*22dc650dSSadaf Ebrahimi 0: b
7037*22dc650dSSadaf Ebrahimi\= Expect no match
7038*22dc650dSSadaf Ebrahimi     aaaa
7039*22dc650dSSadaf EbrahimiNo match
7040*22dc650dSSadaf Ebrahimi
7041*22dc650dSSadaf Ebrahimi/^(a)++\w/
7042*22dc650dSSadaf Ebrahimi     aaaab
7043*22dc650dSSadaf Ebrahimi 0: aaaab
7044*22dc650dSSadaf Ebrahimi\= Expect no match
7045*22dc650dSSadaf Ebrahimi     aaaa
7046*22dc650dSSadaf EbrahimiNo match
7047*22dc650dSSadaf Ebrahimi     bbb
7048*22dc650dSSadaf EbrahimiNo match
7049*22dc650dSSadaf Ebrahimi
7050*22dc650dSSadaf Ebrahimi/^(a|)++\w/
7051*22dc650dSSadaf Ebrahimi     aaaab
7052*22dc650dSSadaf Ebrahimi 0: aaaab
7053*22dc650dSSadaf Ebrahimi\= Expect no match
7054*22dc650dSSadaf Ebrahimi     aaaa
7055*22dc650dSSadaf EbrahimiNo match
7056*22dc650dSSadaf Ebrahimi     bbb
7057*22dc650dSSadaf EbrahimiNo match
7058*22dc650dSSadaf Ebrahimi
7059*22dc650dSSadaf Ebrahimi/(?=abc){3}abc/aftertext
7060*22dc650dSSadaf Ebrahimi    abcabcabc
7061*22dc650dSSadaf Ebrahimi 0: abc
7062*22dc650dSSadaf Ebrahimi 0+ abcabc
7063*22dc650dSSadaf Ebrahimi\= Expect no match
7064*22dc650dSSadaf Ebrahimi    xyz
7065*22dc650dSSadaf EbrahimiNo match
7066*22dc650dSSadaf Ebrahimi
7067*22dc650dSSadaf Ebrahimi/(?=abc)+abc/aftertext
7068*22dc650dSSadaf Ebrahimi    abcabcabc
7069*22dc650dSSadaf Ebrahimi 0: abc
7070*22dc650dSSadaf Ebrahimi 0+ abcabc
7071*22dc650dSSadaf Ebrahimi\= Expect no match
7072*22dc650dSSadaf Ebrahimi    xyz
7073*22dc650dSSadaf EbrahimiNo match
7074*22dc650dSSadaf Ebrahimi
7075*22dc650dSSadaf Ebrahimi/(?=abc)++abc/aftertext
7076*22dc650dSSadaf Ebrahimi    abcabcabc
7077*22dc650dSSadaf Ebrahimi 0: abc
7078*22dc650dSSadaf Ebrahimi 0+ abcabc
7079*22dc650dSSadaf Ebrahimi\= Expect no match
7080*22dc650dSSadaf Ebrahimi    xyz
7081*22dc650dSSadaf EbrahimiNo match
7082*22dc650dSSadaf Ebrahimi
7083*22dc650dSSadaf Ebrahimi/(?=abc){0}xyz/
7084*22dc650dSSadaf Ebrahimi    xyz
7085*22dc650dSSadaf Ebrahimi 0: xyz
7086*22dc650dSSadaf Ebrahimi
7087*22dc650dSSadaf Ebrahimi/(?=abc){1}xyz/
7088*22dc650dSSadaf Ebrahimi\= Expect no match
7089*22dc650dSSadaf Ebrahimi    xyz
7090*22dc650dSSadaf EbrahimiNo match
7091*22dc650dSSadaf Ebrahimi
7092*22dc650dSSadaf Ebrahimi/(?=(a))?./
7093*22dc650dSSadaf Ebrahimi    ab
7094*22dc650dSSadaf Ebrahimi 0: a
7095*22dc650dSSadaf Ebrahimi    bc
7096*22dc650dSSadaf Ebrahimi 0: b
7097*22dc650dSSadaf Ebrahimi
7098*22dc650dSSadaf Ebrahimi/(?=(a))??./
7099*22dc650dSSadaf Ebrahimi    ab
7100*22dc650dSSadaf Ebrahimi 0: a
7101*22dc650dSSadaf Ebrahimi    bc
7102*22dc650dSSadaf Ebrahimi 0: b
7103*22dc650dSSadaf Ebrahimi
7104*22dc650dSSadaf Ebrahimi/^(?=(a)){0}b(?1)/
7105*22dc650dSSadaf Ebrahimi    backgammon
7106*22dc650dSSadaf Ebrahimi 0: ba
7107*22dc650dSSadaf Ebrahimi
7108*22dc650dSSadaf Ebrahimi/^(?=(?1))?[az]([abc])d/
7109*22dc650dSSadaf Ebrahimi    abd
7110*22dc650dSSadaf Ebrahimi 0: abd
7111*22dc650dSSadaf Ebrahimi    zcdxx
7112*22dc650dSSadaf Ebrahimi 0: zcd
7113*22dc650dSSadaf Ebrahimi
7114*22dc650dSSadaf Ebrahimi/^(?!a){0}\w+/
7115*22dc650dSSadaf Ebrahimi    aaaaa
7116*22dc650dSSadaf Ebrahimi 0: aaaaa
7117*22dc650dSSadaf Ebrahimi
7118*22dc650dSSadaf Ebrahimi/(?<=(abc))?xyz/
7119*22dc650dSSadaf Ebrahimi    abcxyz
7120*22dc650dSSadaf Ebrahimi 0: xyz
7121*22dc650dSSadaf Ebrahimi    pqrxyz
7122*22dc650dSSadaf Ebrahimi 0: xyz
7123*22dc650dSSadaf Ebrahimi
7124*22dc650dSSadaf Ebrahimi/((?2))((?1))/
7125*22dc650dSSadaf Ebrahimi    abc
7126*22dc650dSSadaf EbrahimiFailed: error -52: nested recursion at the same subject position
7127*22dc650dSSadaf Ebrahimi
7128*22dc650dSSadaf Ebrahimi/(?(R)a+|(?R)b)/
7129*22dc650dSSadaf Ebrahimi    aaaabcde
7130*22dc650dSSadaf Ebrahimi 0: aaaab
7131*22dc650dSSadaf Ebrahimi
7132*22dc650dSSadaf Ebrahimi/(?(R)a+|((?R))b)/
7133*22dc650dSSadaf Ebrahimi    aaaabcde
7134*22dc650dSSadaf Ebrahimi 0: aaaab
7135*22dc650dSSadaf Ebrahimi
7136*22dc650dSSadaf Ebrahimi/((?(R)a+|(?1)b))/
7137*22dc650dSSadaf Ebrahimi    aaaabcde
7138*22dc650dSSadaf Ebrahimi 0: aaaab
7139*22dc650dSSadaf Ebrahimi
7140*22dc650dSSadaf Ebrahimi/((?(R2)a+|(?1)b))()/
7141*22dc650dSSadaf Ebrahimi    aaaabcde
7142*22dc650dSSadaf EbrahimiFailed: error -40: backreference condition or recursion test is not supported for DFA matching
7143*22dc650dSSadaf Ebrahimi
7144*22dc650dSSadaf Ebrahimi/(?(R)a*(?1)|((?R))b)/
7145*22dc650dSSadaf Ebrahimi    aaaabcde
7146*22dc650dSSadaf EbrahimiFailed: error -52: nested recursion at the same subject position
7147*22dc650dSSadaf Ebrahimi
7148*22dc650dSSadaf Ebrahimi/(a+)/no_auto_possess
7149*22dc650dSSadaf Ebrahimi    aaaa\=ovector=3
7150*22dc650dSSadaf EbrahimiMatched, but offsets vector is too small to show all matches
7151*22dc650dSSadaf Ebrahimi 0: aaaa
7152*22dc650dSSadaf Ebrahimi 1: aaa
7153*22dc650dSSadaf Ebrahimi 2: aa
7154*22dc650dSSadaf Ebrahimi    aaaa\=ovector=4
7155*22dc650dSSadaf Ebrahimi 0: aaaa
7156*22dc650dSSadaf Ebrahimi 1: aaa
7157*22dc650dSSadaf Ebrahimi 2: aa
7158*22dc650dSSadaf Ebrahimi 3: a
7159*22dc650dSSadaf Ebrahimi
7160*22dc650dSSadaf Ebrahimi/^\R/
7161*22dc650dSSadaf Ebrahimi    \r\=ps
7162*22dc650dSSadaf Ebrahimi 0: \x0d
7163*22dc650dSSadaf Ebrahimi    \r\=ph
7164*22dc650dSSadaf EbrahimiPartial match: \x0d
7165*22dc650dSSadaf Ebrahimi
7166*22dc650dSSadaf Ebrahimi/^\R{2,3}x/
7167*22dc650dSSadaf Ebrahimi    \r\=ps
7168*22dc650dSSadaf EbrahimiPartial match: \x0d
7169*22dc650dSSadaf Ebrahimi    \r\=ph
7170*22dc650dSSadaf EbrahimiPartial match: \x0d
7171*22dc650dSSadaf Ebrahimi    \r\r\=ps
7172*22dc650dSSadaf EbrahimiPartial match: \x0d\x0d
7173*22dc650dSSadaf Ebrahimi    \r\r\=ph
7174*22dc650dSSadaf EbrahimiPartial match: \x0d\x0d
7175*22dc650dSSadaf Ebrahimi    \r\r\r\=ps
7176*22dc650dSSadaf EbrahimiPartial match: \x0d\x0d\x0d
7177*22dc650dSSadaf Ebrahimi    \r\r\r\=ph
7178*22dc650dSSadaf EbrahimiPartial match: \x0d\x0d\x0d
7179*22dc650dSSadaf Ebrahimi    \r\rx
7180*22dc650dSSadaf Ebrahimi 0: \x0d\x0dx
7181*22dc650dSSadaf Ebrahimi    \r\r\rx
7182*22dc650dSSadaf Ebrahimi 0: \x0d\x0d\x0dx
7183*22dc650dSSadaf Ebrahimi
7184*22dc650dSSadaf Ebrahimi/^\R{2,3}?x/
7185*22dc650dSSadaf Ebrahimi    \r\=ps
7186*22dc650dSSadaf EbrahimiPartial match: \x0d
7187*22dc650dSSadaf Ebrahimi    \r\=ph
7188*22dc650dSSadaf EbrahimiPartial match: \x0d
7189*22dc650dSSadaf Ebrahimi    \r\r\=ps
7190*22dc650dSSadaf EbrahimiPartial match: \x0d\x0d
7191*22dc650dSSadaf Ebrahimi    \r\r\=ph
7192*22dc650dSSadaf EbrahimiPartial match: \x0d\x0d
7193*22dc650dSSadaf Ebrahimi    \r\r\r\=ps
7194*22dc650dSSadaf EbrahimiPartial match: \x0d\x0d\x0d
7195*22dc650dSSadaf Ebrahimi    \r\r\r\=ph
7196*22dc650dSSadaf EbrahimiPartial match: \x0d\x0d\x0d
7197*22dc650dSSadaf Ebrahimi    \r\rx
7198*22dc650dSSadaf Ebrahimi 0: \x0d\x0dx
7199*22dc650dSSadaf Ebrahimi    \r\r\rx
7200*22dc650dSSadaf Ebrahimi 0: \x0d\x0d\x0dx
7201*22dc650dSSadaf Ebrahimi
7202*22dc650dSSadaf Ebrahimi/^\R?x/
7203*22dc650dSSadaf Ebrahimi    \r\=ps
7204*22dc650dSSadaf EbrahimiPartial match: \x0d
7205*22dc650dSSadaf Ebrahimi    \r\=ph
7206*22dc650dSSadaf EbrahimiPartial match: \x0d
7207*22dc650dSSadaf Ebrahimi    x
7208*22dc650dSSadaf Ebrahimi 0: x
7209*22dc650dSSadaf Ebrahimi    \rx
7210*22dc650dSSadaf Ebrahimi 0: \x0dx
7211*22dc650dSSadaf Ebrahimi
7212*22dc650dSSadaf Ebrahimi/^\R+x/
7213*22dc650dSSadaf Ebrahimi    \r\=ps
7214*22dc650dSSadaf EbrahimiPartial match: \x0d
7215*22dc650dSSadaf Ebrahimi    \r\=ph
7216*22dc650dSSadaf EbrahimiPartial match: \x0d
7217*22dc650dSSadaf Ebrahimi    \r\n\=ps
7218*22dc650dSSadaf EbrahimiPartial match: \x0d\x0a
7219*22dc650dSSadaf Ebrahimi    \r\n\=ph
7220*22dc650dSSadaf EbrahimiPartial match: \x0d\x0a
7221*22dc650dSSadaf Ebrahimi    \rx
7222*22dc650dSSadaf Ebrahimi 0: \x0dx
7223*22dc650dSSadaf Ebrahimi
7224*22dc650dSSadaf Ebrahimi/^a$/newline=crlf
7225*22dc650dSSadaf Ebrahimi    a\r\=ps
7226*22dc650dSSadaf EbrahimiPartial match: a\x0d
7227*22dc650dSSadaf Ebrahimi    a\r\=ph
7228*22dc650dSSadaf EbrahimiPartial match: a\x0d
7229*22dc650dSSadaf Ebrahimi
7230*22dc650dSSadaf Ebrahimi/^a$/m,newline=crlf
7231*22dc650dSSadaf Ebrahimi    a\r\=ps
7232*22dc650dSSadaf EbrahimiPartial match: a\x0d
7233*22dc650dSSadaf Ebrahimi    a\r\=ph
7234*22dc650dSSadaf EbrahimiPartial match: a\x0d
7235*22dc650dSSadaf Ebrahimi
7236*22dc650dSSadaf Ebrahimi/^(a$|a\r)/newline=crlf
7237*22dc650dSSadaf Ebrahimi    a\r\=ps
7238*22dc650dSSadaf Ebrahimi 0: a\x0d
7239*22dc650dSSadaf Ebrahimi    a\r\=ph
7240*22dc650dSSadaf EbrahimiPartial match: a\x0d
7241*22dc650dSSadaf Ebrahimi
7242*22dc650dSSadaf Ebrahimi/^(a$|a\r)/m,newline=crlf
7243*22dc650dSSadaf Ebrahimi    a\r\=ps
7244*22dc650dSSadaf Ebrahimi 0: a\x0d
7245*22dc650dSSadaf Ebrahimi    a\r\=ph
7246*22dc650dSSadaf EbrahimiPartial match: a\x0d
7247*22dc650dSSadaf Ebrahimi
7248*22dc650dSSadaf Ebrahimi/./newline=crlf
7249*22dc650dSSadaf Ebrahimi    \r\=ps
7250*22dc650dSSadaf Ebrahimi 0: \x0d
7251*22dc650dSSadaf Ebrahimi    \r\=ph
7252*22dc650dSSadaf EbrahimiPartial match: \x0d
7253*22dc650dSSadaf Ebrahimi
7254*22dc650dSSadaf Ebrahimi/.{2,3}/newline=crlf
7255*22dc650dSSadaf Ebrahimi    \r\=ps
7256*22dc650dSSadaf EbrahimiPartial match: \x0d
7257*22dc650dSSadaf Ebrahimi    \r\=ph
7258*22dc650dSSadaf EbrahimiPartial match: \x0d
7259*22dc650dSSadaf Ebrahimi    \r\r\=ps
7260*22dc650dSSadaf Ebrahimi 0: \x0d\x0d
7261*22dc650dSSadaf Ebrahimi    \r\r\=ph
7262*22dc650dSSadaf EbrahimiPartial match: \x0d\x0d
7263*22dc650dSSadaf Ebrahimi    \r\r\r\=ps
7264*22dc650dSSadaf Ebrahimi 0: \x0d\x0d\x0d
7265*22dc650dSSadaf Ebrahimi    \r\r\r\=ph
7266*22dc650dSSadaf EbrahimiPartial match: \x0d\x0d\x0d
7267*22dc650dSSadaf Ebrahimi
7268*22dc650dSSadaf Ebrahimi/.{2,3}?/newline=crlf
7269*22dc650dSSadaf Ebrahimi    \r\=ps
7270*22dc650dSSadaf EbrahimiPartial match: \x0d
7271*22dc650dSSadaf Ebrahimi    \r\=ph
7272*22dc650dSSadaf EbrahimiPartial match: \x0d
7273*22dc650dSSadaf Ebrahimi    \r\r\=ps
7274*22dc650dSSadaf Ebrahimi 0: \x0d\x0d
7275*22dc650dSSadaf Ebrahimi    \r\r\=ph
7276*22dc650dSSadaf EbrahimiPartial match: \x0d\x0d
7277*22dc650dSSadaf Ebrahimi    \r\r\r\=ps
7278*22dc650dSSadaf Ebrahimi 0: \x0d\x0d\x0d
7279*22dc650dSSadaf Ebrahimi 1: \x0d\x0d
7280*22dc650dSSadaf Ebrahimi    \r\r\r\=ph
7281*22dc650dSSadaf EbrahimiPartial match: \x0d\x0d\x0d
7282*22dc650dSSadaf Ebrahimi
7283*22dc650dSSadaf Ebrahimi# Test simple validity check for restarts
7284*22dc650dSSadaf Ebrahimi
7285*22dc650dSSadaf Ebrahimi/abcdef/
7286*22dc650dSSadaf Ebrahimi   abc\=dfa_restart
7287*22dc650dSSadaf EbrahimiFailed: error -38: invalid data in workspace for DFA restart
7288*22dc650dSSadaf Ebrahimi
7289*22dc650dSSadaf Ebrahimi/<H((?(?!<H|F>)(.)|(?R))++)*F>/
7290*22dc650dSSadaf Ebrahimi    text <H more text <H texting more  hexA0-"\xA0"    hex above 7F-"\xBC" F> text xxxxx <H text F> text F> text2 <H text sample F> more text.
7291*22dc650dSSadaf Ebrahimi 0: <H more text <H texting more  hexA0-"\xa0"    hex above 7F-"\xbc" F> text xxxxx <H text F> text F>
7292*22dc650dSSadaf Ebrahimi
7293*22dc650dSSadaf Ebrahimi/^(?>.{4})abc|^\w\w.xabcd/
7294*22dc650dSSadaf Ebrahimi    xxxxabcd
7295*22dc650dSSadaf Ebrahimi 0: xxxxabcd
7296*22dc650dSSadaf Ebrahimi 1: xxxxabc
7297*22dc650dSSadaf Ebrahimi    xx\xa0xabcd
7298*22dc650dSSadaf Ebrahimi 0: xx\xa0xabcd
7299*22dc650dSSadaf Ebrahimi 1: xx\xa0xabc
7300*22dc650dSSadaf Ebrahimi
7301*22dc650dSSadaf Ebrahimi/^(.{4}){2}+abc|^\w\w.x\w\w\w\wabcd/
7302*22dc650dSSadaf Ebrahimi    xxxxxxxxabcd
7303*22dc650dSSadaf Ebrahimi 0: xxxxxxxxabcd
7304*22dc650dSSadaf Ebrahimi 1: xxxxxxxxabc
7305*22dc650dSSadaf Ebrahimi    xx\xa0xxxxxabcd
7306*22dc650dSSadaf Ebrahimi 0: xx\xa0xxxxxabcd
7307*22dc650dSSadaf Ebrahimi 1: xx\xa0xxxxxabc
7308*22dc650dSSadaf Ebrahimi
7309*22dc650dSSadaf Ebrahimi/abcd/
7310*22dc650dSSadaf Ebrahimi    abcd\=ovector=0
7311*22dc650dSSadaf Ebrahimi 0: abcd
7312*22dc650dSSadaf Ebrahimi
7313*22dc650dSSadaf Ebrahimi# These tests show up auto-possessification
7314*22dc650dSSadaf Ebrahimi
7315*22dc650dSSadaf Ebrahimi/[ab]*/
7316*22dc650dSSadaf Ebrahimi    aaaa
7317*22dc650dSSadaf Ebrahimi 0: aaaa
7318*22dc650dSSadaf Ebrahimi
7319*22dc650dSSadaf Ebrahimi/[ab]*?/
7320*22dc650dSSadaf Ebrahimi    aaaa
7321*22dc650dSSadaf Ebrahimi 0: aaaa
7322*22dc650dSSadaf Ebrahimi 1: aaa
7323*22dc650dSSadaf Ebrahimi 2: aa
7324*22dc650dSSadaf Ebrahimi 3: a
7325*22dc650dSSadaf Ebrahimi 4:
7326*22dc650dSSadaf Ebrahimi
7327*22dc650dSSadaf Ebrahimi/[ab]?/
7328*22dc650dSSadaf Ebrahimi    aaaa
7329*22dc650dSSadaf Ebrahimi 0: a
7330*22dc650dSSadaf Ebrahimi
7331*22dc650dSSadaf Ebrahimi/[ab]??/
7332*22dc650dSSadaf Ebrahimi    aaaa
7333*22dc650dSSadaf Ebrahimi 0: a
7334*22dc650dSSadaf Ebrahimi 1:
7335*22dc650dSSadaf Ebrahimi
7336*22dc650dSSadaf Ebrahimi/[ab]+/
7337*22dc650dSSadaf Ebrahimi    aaaa
7338*22dc650dSSadaf Ebrahimi 0: aaaa
7339*22dc650dSSadaf Ebrahimi
7340*22dc650dSSadaf Ebrahimi/[ab]+?/
7341*22dc650dSSadaf Ebrahimi    aaaa
7342*22dc650dSSadaf Ebrahimi 0: aaaa
7343*22dc650dSSadaf Ebrahimi 1: aaa
7344*22dc650dSSadaf Ebrahimi 2: aa
7345*22dc650dSSadaf Ebrahimi 3: a
7346*22dc650dSSadaf Ebrahimi
7347*22dc650dSSadaf Ebrahimi/[ab]{2,3}/
7348*22dc650dSSadaf Ebrahimi    aaaa
7349*22dc650dSSadaf Ebrahimi 0: aaa
7350*22dc650dSSadaf Ebrahimi
7351*22dc650dSSadaf Ebrahimi/[ab]{2,3}?/
7352*22dc650dSSadaf Ebrahimi    aaaa
7353*22dc650dSSadaf Ebrahimi 0: aaa
7354*22dc650dSSadaf Ebrahimi 1: aa
7355*22dc650dSSadaf Ebrahimi
7356*22dc650dSSadaf Ebrahimi/[ab]{2,}/
7357*22dc650dSSadaf Ebrahimi    aaaa
7358*22dc650dSSadaf Ebrahimi 0: aaaa
7359*22dc650dSSadaf Ebrahimi
7360*22dc650dSSadaf Ebrahimi/[ab]{2,}?/
7361*22dc650dSSadaf Ebrahimi    aaaa
7362*22dc650dSSadaf Ebrahimi 0: aaaa
7363*22dc650dSSadaf Ebrahimi 1: aaa
7364*22dc650dSSadaf Ebrahimi 2: aa
7365*22dc650dSSadaf Ebrahimi
7366*22dc650dSSadaf Ebrahimi'\A(?:[^\"]++|\"(?:[^\"]*+|\"\")*+\")++'
7367*22dc650dSSadaf Ebrahimi    NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
7368*22dc650dSSadaf Ebrahimi 0: NON QUOTED "QUOT""ED" AFTER
7369*22dc650dSSadaf Ebrahimi
7370*22dc650dSSadaf Ebrahimi'\A(?:[^\"]++|\"(?:[^\"]++|\"\")*+\")++'
7371*22dc650dSSadaf Ebrahimi    NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
7372*22dc650dSSadaf Ebrahimi 0: NON QUOTED "QUOT""ED" AFTER
7373*22dc650dSSadaf Ebrahimi
7374*22dc650dSSadaf Ebrahimi/abc(?=xyz)/allusedtext
7375*22dc650dSSadaf Ebrahimi    abcxyzpqr
7376*22dc650dSSadaf Ebrahimi 0: abcxyz
7377*22dc650dSSadaf Ebrahimi       >>>
7378*22dc650dSSadaf Ebrahimi    abcxyzpqr\=aftertext
7379*22dc650dSSadaf Ebrahimi 0: abcxyz
7380*22dc650dSSadaf Ebrahimi       >>>
7381*22dc650dSSadaf Ebrahimi 0+ xyzpqr
7382*22dc650dSSadaf Ebrahimi
7383*22dc650dSSadaf Ebrahimi/(?<=pqr)abc(?=xyz)/allusedtext
7384*22dc650dSSadaf Ebrahimi    xyzpqrabcxyzpqr
7385*22dc650dSSadaf Ebrahimi 0: pqrabcxyz
7386*22dc650dSSadaf Ebrahimi    <<<   >>>
7387*22dc650dSSadaf Ebrahimi    xyzpqrabcxyzpqr\=aftertext
7388*22dc650dSSadaf Ebrahimi 0: pqrabcxyz
7389*22dc650dSSadaf Ebrahimi    <<<   >>>
7390*22dc650dSSadaf Ebrahimi 0+ xyzpqr
7391*22dc650dSSadaf Ebrahimi
7392*22dc650dSSadaf Ebrahimi/a\b/
7393*22dc650dSSadaf Ebrahimi    a.\=allusedtext
7394*22dc650dSSadaf Ebrahimi 0: a.
7395*22dc650dSSadaf Ebrahimi     >
7396*22dc650dSSadaf Ebrahimi    a\=allusedtext
7397*22dc650dSSadaf Ebrahimi 0: a
7398*22dc650dSSadaf Ebrahimi
7399*22dc650dSSadaf Ebrahimi/abc(?=abcde)(?=ab)/allusedtext
7400*22dc650dSSadaf Ebrahimi    abcabcdefg
7401*22dc650dSSadaf Ebrahimi 0: abcabcde
7402*22dc650dSSadaf Ebrahimi       >>>>>
7403*22dc650dSSadaf Ebrahimi
7404*22dc650dSSadaf Ebrahimi/a*?b*?/
7405*22dc650dSSadaf Ebrahimi    ab
7406*22dc650dSSadaf Ebrahimi 0: ab
7407*22dc650dSSadaf Ebrahimi 1: a
7408*22dc650dSSadaf Ebrahimi 2:
7409*22dc650dSSadaf Ebrahimi
7410*22dc650dSSadaf Ebrahimi/(*NOTEMPTY)a*?b*?/
7411*22dc650dSSadaf Ebrahimi    ab
7412*22dc650dSSadaf Ebrahimi 0: ab
7413*22dc650dSSadaf Ebrahimi 1: a
7414*22dc650dSSadaf Ebrahimi    ba
7415*22dc650dSSadaf Ebrahimi 0: b
7416*22dc650dSSadaf Ebrahimi    cb
7417*22dc650dSSadaf Ebrahimi 0: b
7418*22dc650dSSadaf Ebrahimi
7419*22dc650dSSadaf Ebrahimi/(*NOTEMPTY_ATSTART)a*?b*?/aftertext
7420*22dc650dSSadaf Ebrahimi    ab
7421*22dc650dSSadaf Ebrahimi 0: ab
7422*22dc650dSSadaf Ebrahimi 0+
7423*22dc650dSSadaf Ebrahimi 1: a
7424*22dc650dSSadaf Ebrahimi    cdab
7425*22dc650dSSadaf Ebrahimi 0:
7426*22dc650dSSadaf Ebrahimi 0+ dab
7427*22dc650dSSadaf Ebrahimi
7428*22dc650dSSadaf Ebrahimi/(a)(b)|(c)/
7429*22dc650dSSadaf Ebrahimi    XcX\=ovector=2,get=1,get=2,get=3,get=4,getall
7430*22dc650dSSadaf Ebrahimi 0: c
7431*22dc650dSSadaf EbrahimiGet substring 1 failed (-55): requested value is not set
7432*22dc650dSSadaf EbrahimiGet substring 2 failed (-54): requested value is not available
7433*22dc650dSSadaf EbrahimiGet substring 3 failed (-54): requested value is not available
7434*22dc650dSSadaf EbrahimiGet substring 4 failed (-54): requested value is not available
7435*22dc650dSSadaf Ebrahimi 0L c
7436*22dc650dSSadaf Ebrahimi
7437*22dc650dSSadaf Ebrahimi/(?<A>aa)/
7438*22dc650dSSadaf Ebrahimi    aa\=get=A
7439*22dc650dSSadaf Ebrahimi 0: aa
7440*22dc650dSSadaf EbrahimiGet substring 'A' failed (-41): function is not supported for DFA matching
7441*22dc650dSSadaf Ebrahimi    aa\=copy=A
7442*22dc650dSSadaf Ebrahimi 0: aa
7443*22dc650dSSadaf EbrahimiCopy substring 'A' failed (-41): function is not supported for DFA matching
7444*22dc650dSSadaf Ebrahimi
7445*22dc650dSSadaf Ebrahimi/a+/no_auto_possess
7446*22dc650dSSadaf Ebrahimi    a\=ovector=2,get=1,get=2,getall
7447*22dc650dSSadaf Ebrahimi 0: a
7448*22dc650dSSadaf EbrahimiGet substring 1 failed (-55): requested value is not set
7449*22dc650dSSadaf EbrahimiGet substring 2 failed (-54): requested value is not available
7450*22dc650dSSadaf Ebrahimi 0L a
7451*22dc650dSSadaf Ebrahimi    aaa\=ovector=2,get=1,get=2,getall
7452*22dc650dSSadaf EbrahimiMatched, but offsets vector is too small to show all matches
7453*22dc650dSSadaf Ebrahimi 0: aaa
7454*22dc650dSSadaf Ebrahimi 1: aa
7455*22dc650dSSadaf Ebrahimi 1G aa (2)
7456*22dc650dSSadaf EbrahimiGet substring 2 failed (-54): requested value is not available
7457*22dc650dSSadaf Ebrahimi 0L aaa
7458*22dc650dSSadaf Ebrahimi 1L aa
7459*22dc650dSSadaf Ebrahimi
7460*22dc650dSSadaf Ebrahimi/a(b)c(d)/
7461*22dc650dSSadaf Ebrahimi    abc\=ph,copy=0,copy=1,getall
7462*22dc650dSSadaf EbrahimiPartial match: abc
7463*22dc650dSSadaf Ebrahimi 0C abc (3)
7464*22dc650dSSadaf EbrahimiCopy substring 1 failed (-2): partial match
7465*22dc650dSSadaf Ebrahimiget substring list failed (-2): partial match
7466*22dc650dSSadaf Ebrahimi
7467*22dc650dSSadaf Ebrahimi/ab(?C" any text with spaces ")cde/B
7468*22dc650dSSadaf Ebrahimi------------------------------------------------------------------
7469*22dc650dSSadaf Ebrahimi        Bra
7470*22dc650dSSadaf Ebrahimi        ab
7471*22dc650dSSadaf Ebrahimi        CalloutStr " any text with spaces " 6 30 1
7472*22dc650dSSadaf Ebrahimi        cde
7473*22dc650dSSadaf Ebrahimi        Ket
7474*22dc650dSSadaf Ebrahimi        End
7475*22dc650dSSadaf Ebrahimi------------------------------------------------------------------
7476*22dc650dSSadaf Ebrahimi    abcde
7477*22dc650dSSadaf EbrahimiCallout (6): " any text with spaces "
7478*22dc650dSSadaf Ebrahimi--->abcde
7479*22dc650dSSadaf Ebrahimi    ^ ^       c
7480*22dc650dSSadaf Ebrahimi 0: abcde
7481*22dc650dSSadaf Ebrahimi    12abcde
7482*22dc650dSSadaf EbrahimiCallout (6): " any text with spaces "
7483*22dc650dSSadaf Ebrahimi--->12abcde
7484*22dc650dSSadaf Ebrahimi      ^ ^       c
7485*22dc650dSSadaf Ebrahimi 0: abcde
7486*22dc650dSSadaf Ebrahimi
7487*22dc650dSSadaf Ebrahimi/^a(b)c(?C1)def/
7488*22dc650dSSadaf Ebrahimi      abcdef
7489*22dc650dSSadaf Ebrahimi--->abcdef
7490*22dc650dSSadaf Ebrahimi  1 ^  ^       d
7491*22dc650dSSadaf Ebrahimi 0: abcdef
7492*22dc650dSSadaf Ebrahimi
7493*22dc650dSSadaf Ebrahimi/^a(b)c(?C"AB")def/
7494*22dc650dSSadaf Ebrahimi      abcdef
7495*22dc650dSSadaf EbrahimiCallout (10): "AB"
7496*22dc650dSSadaf Ebrahimi--->abcdef
7497*22dc650dSSadaf Ebrahimi    ^  ^       d
7498*22dc650dSSadaf Ebrahimi 0: abcdef
7499*22dc650dSSadaf Ebrahimi
7500*22dc650dSSadaf Ebrahimi/^a(b)c(?C1)def/
7501*22dc650dSSadaf Ebrahimi      abcdef\=callout_capture
7502*22dc650dSSadaf EbrahimiCallout 1: last capture = 0
7503*22dc650dSSadaf Ebrahimi--->abcdef
7504*22dc650dSSadaf Ebrahimi    ^  ^       d
7505*22dc650dSSadaf Ebrahimi 0: abcdef
7506*22dc650dSSadaf Ebrahimi
7507*22dc650dSSadaf Ebrahimi/^a(b)c(?C{AB})def/B
7508*22dc650dSSadaf Ebrahimi------------------------------------------------------------------
7509*22dc650dSSadaf Ebrahimi        Bra
7510*22dc650dSSadaf Ebrahimi        ^
7511*22dc650dSSadaf Ebrahimi        a
7512*22dc650dSSadaf Ebrahimi        CBra 1
7513*22dc650dSSadaf Ebrahimi        b
7514*22dc650dSSadaf Ebrahimi        Ket
7515*22dc650dSSadaf Ebrahimi        c
7516*22dc650dSSadaf Ebrahimi        CalloutStr {AB} 10 14 1
7517*22dc650dSSadaf Ebrahimi        def
7518*22dc650dSSadaf Ebrahimi        Ket
7519*22dc650dSSadaf Ebrahimi        End
7520*22dc650dSSadaf Ebrahimi------------------------------------------------------------------
7521*22dc650dSSadaf Ebrahimi      abcdef\=callout_capture
7522*22dc650dSSadaf EbrahimiCallout (10): {AB} last capture = 0
7523*22dc650dSSadaf Ebrahimi--->abcdef
7524*22dc650dSSadaf Ebrahimi    ^  ^       d
7525*22dc650dSSadaf Ebrahimi 0: abcdef
7526*22dc650dSSadaf Ebrahimi
7527*22dc650dSSadaf Ebrahimi/^(?(?C25)(?=abc)abcd|xyz)/B
7528*22dc650dSSadaf Ebrahimi------------------------------------------------------------------
7529*22dc650dSSadaf Ebrahimi        Bra
7530*22dc650dSSadaf Ebrahimi        ^
7531*22dc650dSSadaf Ebrahimi        Cond
7532*22dc650dSSadaf Ebrahimi        Callout 25 9 3
7533*22dc650dSSadaf Ebrahimi        Assert
7534*22dc650dSSadaf Ebrahimi        abc
7535*22dc650dSSadaf Ebrahimi        Ket
7536*22dc650dSSadaf Ebrahimi        abcd
7537*22dc650dSSadaf Ebrahimi        Alt
7538*22dc650dSSadaf Ebrahimi        xyz
7539*22dc650dSSadaf Ebrahimi        Ket
7540*22dc650dSSadaf Ebrahimi        Ket
7541*22dc650dSSadaf Ebrahimi        End
7542*22dc650dSSadaf Ebrahimi------------------------------------------------------------------
7543*22dc650dSSadaf Ebrahimi    abcdefg
7544*22dc650dSSadaf Ebrahimi--->abcdefg
7545*22dc650dSSadaf Ebrahimi 25 ^           (?=
7546*22dc650dSSadaf Ebrahimi 0: abcd
7547*22dc650dSSadaf Ebrahimi    xyz123
7548*22dc650dSSadaf Ebrahimi--->xyz123
7549*22dc650dSSadaf Ebrahimi 25 ^          (?=
7550*22dc650dSSadaf Ebrahimi 0: xyz
7551*22dc650dSSadaf Ebrahimi
7552*22dc650dSSadaf Ebrahimi/^(?(?C$abc$)(?=abc)abcd|xyz)/B
7553*22dc650dSSadaf Ebrahimi------------------------------------------------------------------
7554*22dc650dSSadaf Ebrahimi        Bra
7555*22dc650dSSadaf Ebrahimi        ^
7556*22dc650dSSadaf Ebrahimi        Cond
7557*22dc650dSSadaf Ebrahimi        CalloutStr $abc$ 7 12 3
7558*22dc650dSSadaf Ebrahimi        Assert
7559*22dc650dSSadaf Ebrahimi        abc
7560*22dc650dSSadaf Ebrahimi        Ket
7561*22dc650dSSadaf Ebrahimi        abcd
7562*22dc650dSSadaf Ebrahimi        Alt
7563*22dc650dSSadaf Ebrahimi        xyz
7564*22dc650dSSadaf Ebrahimi        Ket
7565*22dc650dSSadaf Ebrahimi        Ket
7566*22dc650dSSadaf Ebrahimi        End
7567*22dc650dSSadaf Ebrahimi------------------------------------------------------------------
7568*22dc650dSSadaf Ebrahimi    abcdefg
7569*22dc650dSSadaf EbrahimiCallout (7): $abc$
7570*22dc650dSSadaf Ebrahimi--->abcdefg
7571*22dc650dSSadaf Ebrahimi    ^           (?=
7572*22dc650dSSadaf Ebrahimi 0: abcd
7573*22dc650dSSadaf Ebrahimi    xyz123
7574*22dc650dSSadaf EbrahimiCallout (7): $abc$
7575*22dc650dSSadaf Ebrahimi--->xyz123
7576*22dc650dSSadaf Ebrahimi    ^          (?=
7577*22dc650dSSadaf Ebrahimi 0: xyz
7578*22dc650dSSadaf Ebrahimi
7579*22dc650dSSadaf Ebrahimi/^ab(?C'first')cd(?C"second")ef/
7580*22dc650dSSadaf Ebrahimi    abcdefg
7581*22dc650dSSadaf EbrahimiCallout (7): 'first'
7582*22dc650dSSadaf Ebrahimi--->abcdefg
7583*22dc650dSSadaf Ebrahimi    ^ ^         c
7584*22dc650dSSadaf EbrahimiCallout (20): "second"
7585*22dc650dSSadaf Ebrahimi--->abcdefg
7586*22dc650dSSadaf Ebrahimi    ^   ^       e
7587*22dc650dSSadaf Ebrahimi 0: abcdef
7588*22dc650dSSadaf Ebrahimi
7589*22dc650dSSadaf Ebrahimi/(?:a(?C`code`)){3}X/
7590*22dc650dSSadaf Ebrahimi    aaaXY
7591*22dc650dSSadaf EbrahimiCallout (8): `code`
7592*22dc650dSSadaf Ebrahimi--->aaaXY
7593*22dc650dSSadaf Ebrahimi    ^^        ){3}
7594*22dc650dSSadaf EbrahimiCallout (8): `code`
7595*22dc650dSSadaf Ebrahimi--->aaaXY
7596*22dc650dSSadaf Ebrahimi    ^ ^       ){3}
7597*22dc650dSSadaf EbrahimiCallout (8): `code`
7598*22dc650dSSadaf Ebrahimi--->aaaXY
7599*22dc650dSSadaf Ebrahimi    ^  ^      ){3}
7600*22dc650dSSadaf Ebrahimi 0: aaaX
7601*22dc650dSSadaf Ebrahimi
7602*22dc650dSSadaf Ebrahimi# Binary zero in callout string
7603*22dc650dSSadaf Ebrahimi/"a(?C'x" 00 "z')b"/hex
7604*22dc650dSSadaf Ebrahimi    abcdefgh
7605*22dc650dSSadaf EbrahimiCallout (5): 'x\x00z'
7606*22dc650dSSadaf Ebrahimi--->abcdefgh
7607*22dc650dSSadaf Ebrahimi    ^^           b
7608*22dc650dSSadaf Ebrahimi 0: ab
7609*22dc650dSSadaf Ebrahimi
7610*22dc650dSSadaf Ebrahimi/(?(?!)a|b)/
7611*22dc650dSSadaf Ebrahimi    bbb
7612*22dc650dSSadaf Ebrahimi 0: b
7613*22dc650dSSadaf Ebrahimi\= Expect no match
7614*22dc650dSSadaf Ebrahimi    aaa
7615*22dc650dSSadaf EbrahimiNo match
7616*22dc650dSSadaf Ebrahimi
7617*22dc650dSSadaf Ebrahimi/^/gm
7618*22dc650dSSadaf Ebrahimi    \n\n\n
7619*22dc650dSSadaf Ebrahimi 0:
7620*22dc650dSSadaf Ebrahimi 0:
7621*22dc650dSSadaf Ebrahimi 0:
7622*22dc650dSSadaf Ebrahimi
7623*22dc650dSSadaf Ebrahimi/^/gm,alt_circumflex
7624*22dc650dSSadaf Ebrahimi    \n\n\n
7625*22dc650dSSadaf Ebrahimi 0:
7626*22dc650dSSadaf Ebrahimi 0:
7627*22dc650dSSadaf Ebrahimi 0:
7628*22dc650dSSadaf Ebrahimi 0:
7629*22dc650dSSadaf Ebrahimi
7630*22dc650dSSadaf Ebrahimi/abc/use_offset_limit
7631*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=100
7632*22dc650dSSadaf Ebrahimi 0: abc
7633*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=9
7634*22dc650dSSadaf Ebrahimi 0: abc
7635*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=4
7636*22dc650dSSadaf Ebrahimi 0: abc
7637*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=4,offset=4
7638*22dc650dSSadaf Ebrahimi 0: abc
7639*22dc650dSSadaf Ebrahimi\= Expect no match
7640*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=4,offset=5
7641*22dc650dSSadaf EbrahimiNo match
7642*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=3
7643*22dc650dSSadaf EbrahimiNo match
7644*22dc650dSSadaf Ebrahimi
7645*22dc650dSSadaf Ebrahimi/(?<=abc)/use_offset_limit
7646*22dc650dSSadaf Ebrahimi    1234abc\=offset_limit=7
7647*22dc650dSSadaf Ebrahimi 0:
7648*22dc650dSSadaf Ebrahimi\= Expect no match
7649*22dc650dSSadaf Ebrahimi    1234abc\=offset_limit=6
7650*22dc650dSSadaf EbrahimiNo match
7651*22dc650dSSadaf Ebrahimi
7652*22dc650dSSadaf Ebrahimi/abcd/null_context
7653*22dc650dSSadaf Ebrahimi    abcd\=null_context
7654*22dc650dSSadaf Ebrahimi 0: abcd
7655*22dc650dSSadaf Ebrahimi
7656*22dc650dSSadaf Ebrahimi/()()a+/no_auto_possess
7657*22dc650dSSadaf Ebrahimi    aaa\=allcaptures
7658*22dc650dSSadaf Ebrahimi** Ignored for DFA matching: allcaptures
7659*22dc650dSSadaf Ebrahimi 0: aaa
7660*22dc650dSSadaf Ebrahimi 1: aa
7661*22dc650dSSadaf Ebrahimi 2: a
7662*22dc650dSSadaf Ebrahimi    a\=allcaptures
7663*22dc650dSSadaf Ebrahimi** Ignored for DFA matching: allcaptures
7664*22dc650dSSadaf Ebrahimi 0: a
7665*22dc650dSSadaf Ebrahimi
7666*22dc650dSSadaf Ebrahimi/(*LIMIT_DEPTH=100)^((.)(?1)|.)$/
7667*22dc650dSSadaf Ebrahimi\= Expect depth limit exceeded
7668*22dc650dSSadaf Ebrahimi    a[00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]
7669*22dc650dSSadaf EbrahimiFailed: error -53: matching depth limit exceeded
7670*22dc650dSSadaf Ebrahimi
7671*22dc650dSSadaf Ebrahimi/(*LIMIT_HEAP=0)^((.)(?1)|.)$/
7672*22dc650dSSadaf Ebrahimi\= Expect heap limit exceeded
7673*22dc650dSSadaf Ebrahimi    a[00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]
7674*22dc650dSSadaf EbrahimiFailed: error -63: heap limit exceeded
7675*22dc650dSSadaf Ebrahimi
7676*22dc650dSSadaf Ebrahimi/(*LIMIT_HEAP=50000)^((.)(?1)|.)$/
7677*22dc650dSSadaf Ebrahimi\= Expect success
7678*22dc650dSSadaf Ebrahimi    a[00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]
7679*22dc650dSSadaf Ebrahimi 0: a[00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]
7680*22dc650dSSadaf Ebrahimi
7681*22dc650dSSadaf Ebrahimi/(02-)?[0-9]{3}-[0-9]{3}/
7682*22dc650dSSadaf Ebrahimi    02-123-123
7683*22dc650dSSadaf Ebrahimi 0: 02-123-123
7684*22dc650dSSadaf Ebrahimi
7685*22dc650dSSadaf Ebrahimi/^(a(?2))(b)(?1)/
7686*22dc650dSSadaf Ebrahimi    abbab\=find_limits
7687*22dc650dSSadaf EbrahimiMinimum heap limit = 0
7688*22dc650dSSadaf EbrahimiMinimum match limit = 4
7689*22dc650dSSadaf EbrahimiMinimum depth limit = 2
7690*22dc650dSSadaf Ebrahimi 0: abbab
7691*22dc650dSSadaf Ebrahimi
7692*22dc650dSSadaf Ebrahimi/abc/endanchored
7693*22dc650dSSadaf Ebrahimi    xyzabc
7694*22dc650dSSadaf Ebrahimi 0: abc
7695*22dc650dSSadaf Ebrahimi\= Expect no match
7696*22dc650dSSadaf Ebrahimi    xyzabcdef
7697*22dc650dSSadaf EbrahimiNo match
7698*22dc650dSSadaf Ebrahimi\= Expect error
7699*22dc650dSSadaf Ebrahimi    xyzabc\=ph
7700*22dc650dSSadaf EbrahimiFailed: error -34: bad option value
7701*22dc650dSSadaf Ebrahimi
7702*22dc650dSSadaf Ebrahimi/abc/
7703*22dc650dSSadaf Ebrahimi    xyzabc\=endanchored
7704*22dc650dSSadaf Ebrahimi 0: abc
7705*22dc650dSSadaf Ebrahimi\= Expect no match
7706*22dc650dSSadaf Ebrahimi    xyzabcdef\=endanchored
7707*22dc650dSSadaf EbrahimiNo match
7708*22dc650dSSadaf Ebrahimi\= Expect error
7709*22dc650dSSadaf Ebrahimi    xyzabc\=ps,endanchored
7710*22dc650dSSadaf EbrahimiFailed: error -34: bad option value
7711*22dc650dSSadaf Ebrahimi
7712*22dc650dSSadaf Ebrahimi/abc|bcd/endanchored
7713*22dc650dSSadaf Ebrahimi    xyzabcd
7714*22dc650dSSadaf Ebrahimi 0: bcd
7715*22dc650dSSadaf Ebrahimi\= Expect no match
7716*22dc650dSSadaf Ebrahimi    xyzabcdef
7717*22dc650dSSadaf EbrahimiNo match
7718*22dc650dSSadaf Ebrahimi
7719*22dc650dSSadaf Ebrahimi/(*NUL)^.*/
7720*22dc650dSSadaf Ebrahimi    a\nb\x00ccc
7721*22dc650dSSadaf Ebrahimi 0: a\x0ab
7722*22dc650dSSadaf Ebrahimi
7723*22dc650dSSadaf Ebrahimi/(*NUL)^.*/s
7724*22dc650dSSadaf Ebrahimi    a\nb\x00ccc
7725*22dc650dSSadaf Ebrahimi 0: a\x0ab\x00ccc
7726*22dc650dSSadaf Ebrahimi
7727*22dc650dSSadaf Ebrahimi/^x/m,newline=nul
7728*22dc650dSSadaf Ebrahimi    ab\x00xy
7729*22dc650dSSadaf Ebrahimi 0: x
7730*22dc650dSSadaf Ebrahimi
7731*22dc650dSSadaf Ebrahimi/'#comment' 0d 0a 00 '^x\' 0a 'y'/x,newline=nul,hex
7732*22dc650dSSadaf Ebrahimi    x\nyz
7733*22dc650dSSadaf Ebrahimi 0: x\x0ay
7734*22dc650dSSadaf Ebrahimi
7735*22dc650dSSadaf Ebrahimi/(*NUL)^X\NY/
7736*22dc650dSSadaf Ebrahimi    X\nY
7737*22dc650dSSadaf Ebrahimi 0: X\x0aY
7738*22dc650dSSadaf Ebrahimi    X\rY
7739*22dc650dSSadaf Ebrahimi 0: X\x0dY
7740*22dc650dSSadaf Ebrahimi\= Expect no match
7741*22dc650dSSadaf Ebrahimi    X\x00Y
7742*22dc650dSSadaf EbrahimiNo match
7743*22dc650dSSadaf Ebrahimi
7744*22dc650dSSadaf Ebrahimi/(?<=abc|)/
7745*22dc650dSSadaf Ebrahimi    abcde\=aftertext
7746*22dc650dSSadaf Ebrahimi 0:
7747*22dc650dSSadaf Ebrahimi 0+ abcde
7748*22dc650dSSadaf Ebrahimi
7749*22dc650dSSadaf Ebrahimi/(?<=|abc)/
7750*22dc650dSSadaf Ebrahimi    abcde\=aftertext
7751*22dc650dSSadaf Ebrahimi 0:
7752*22dc650dSSadaf Ebrahimi 0+ abcde
7753*22dc650dSSadaf Ebrahimi
7754*22dc650dSSadaf Ebrahimi/(?<=abc|)/endanchored
7755*22dc650dSSadaf Ebrahimi    abcde\=aftertext
7756*22dc650dSSadaf Ebrahimi 0:
7757*22dc650dSSadaf Ebrahimi 0+
7758*22dc650dSSadaf Ebrahimi
7759*22dc650dSSadaf Ebrahimi/(?<=|abc)/endanchored
7760*22dc650dSSadaf Ebrahimi    abcde\=aftertext
7761*22dc650dSSadaf Ebrahimi 0:
7762*22dc650dSSadaf Ebrahimi 0+
7763*22dc650dSSadaf Ebrahimi
7764*22dc650dSSadaf Ebrahimi/(*LIMIT_MATCH=100).*(?![|H]?.*(?![|H]?););.*(?![|H]?.*(?![|H]?););\x00\x00\x00\x00\x00\x00\x00(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?![|);)?.*(![|H]?);)?.*(?![|H]?);)?.*(?![|H]?);)?.*(?![|H]););![|H]?););[|H]?);|H]?);)\x00\x00\x00\x00\x00\x00H]?););?![|H]?);)?.*(?![|H]?););[||H]?);)?.*(?![|H]?););[|H]?);(?![|H]?););![|H]?););[|H]?);|H]?);)?.*(?![|H]?););;[\x00\x00\x00\x00\x00\x00\x00![|H]?););![|H]?););[|H]?);|H]?);)?.*(?![|H]?););/no_dotstar_anchor
7765*22dc650dSSadaf Ebrahimi\= Expect limit exceeded
7766*22dc650dSSadaf Ebrahimi.*(?![|H]?.*(?![|H]?););.*(?![|H]?.*(?![|H]?););\x00\x00\x00\x00\x00\x00\x00(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?![|);)?.*(![|H]?);)?.*(?![|H]?);)?.*(?![|H]?);)?.*(?![|H]););![|H]?););[|H]?);|H]?);)\x00\x00\x00\x00\x00\x00H]?););?![|H]?);)?.*(?![|H]?););[||H]?);)?.*(?![|H]?););[|H]?);(?![|H]?););![|H]?););[|H]?);|H]?);)?.*(?![|H]?););;[\x00\x00\x00\x00\x00\x00\x00![|H]?););![|H]?););[|H]?);|H]?);)?.*(?![|H]?););
7767*22dc650dSSadaf EbrahimiFailed: error -47: match limit exceeded
7768*22dc650dSSadaf Ebrahimi
7769*22dc650dSSadaf Ebrahimi/\n/firstline
7770*22dc650dSSadaf Ebrahimi    xyz\nabc
7771*22dc650dSSadaf Ebrahimi 0: \x0a
7772*22dc650dSSadaf Ebrahimi
7773*22dc650dSSadaf Ebrahimi/\nabc/firstline
7774*22dc650dSSadaf Ebrahimi    xyz\nabc
7775*22dc650dSSadaf Ebrahimi 0: \x0aabc
7776*22dc650dSSadaf Ebrahimi
7777*22dc650dSSadaf Ebrahimi/\x{0a}abc/firstline,newline=crlf
7778*22dc650dSSadaf Ebrahimi\= Expect no match
7779*22dc650dSSadaf Ebrahimi    xyz\r\nabc
7780*22dc650dSSadaf EbrahimiNo match
7781*22dc650dSSadaf Ebrahimi
7782*22dc650dSSadaf Ebrahimi/[abc]/firstline
7783*22dc650dSSadaf Ebrahimi\= Expect no match
7784*22dc650dSSadaf Ebrahimi    \na
7785*22dc650dSSadaf EbrahimiNo match
7786*22dc650dSSadaf Ebrahimi
7787*22dc650dSSadaf Ebrahimi/foobar/
7788*22dc650dSSadaf Ebrahimi    the foobar thing\=copy_matched_subject
7789*22dc650dSSadaf Ebrahimi 0: foobar
7790*22dc650dSSadaf Ebrahimi    the foobar thing\=copy_matched_subject,zero_terminate
7791*22dc650dSSadaf Ebrahimi 0: foobar
7792*22dc650dSSadaf Ebrahimi
7793*22dc650dSSadaf Ebrahimi/foobar/g
7794*22dc650dSSadaf Ebrahimi    the foobar thing foobar again\=copy_matched_subject
7795*22dc650dSSadaf Ebrahimi 0: foobar
7796*22dc650dSSadaf Ebrahimi 0: foobar
7797*22dc650dSSadaf Ebrahimi
7798*22dc650dSSadaf Ebrahimi/(?(VERSION>=0)^B0W)/
7799*22dc650dSSadaf Ebrahimi    B0W-W0W
7800*22dc650dSSadaf Ebrahimi 0: B0W
7801*22dc650dSSadaf Ebrahimi\= Expect no match
7802*22dc650dSSadaf Ebrahimi    0
7803*22dc650dSSadaf EbrahimiNo match
7804*22dc650dSSadaf Ebrahimi
7805*22dc650dSSadaf Ebrahimi/(?(VERSION>=1000)^B0W|W0W)/
7806*22dc650dSSadaf Ebrahimi    B0W-W0W
7807*22dc650dSSadaf Ebrahimi 0: W0W
7808*22dc650dSSadaf Ebrahimi\= Expect no match
7809*22dc650dSSadaf Ebrahimi    0
7810*22dc650dSSadaf EbrahimiNo match
7811*22dc650dSSadaf Ebrahimi
7812*22dc650dSSadaf Ebrahimi/(?<=pqr)abc(?=xyz)/
7813*22dc650dSSadaf Ebrahimi    123pqrabcxy\=ps,allusedtext
7814*22dc650dSSadaf EbrahimiPartial match: pqrabcxy
7815*22dc650dSSadaf Ebrahimi               <<<
7816*22dc650dSSadaf Ebrahimi    123pqrabcxyz\=ps,allusedtext
7817*22dc650dSSadaf Ebrahimi 0: pqrabcxyz
7818*22dc650dSSadaf Ebrahimi    <<<   >>>
7819*22dc650dSSadaf Ebrahimi
7820*22dc650dSSadaf Ebrahimi/(?>a+b)/
7821*22dc650dSSadaf Ebrahimi    aaaa\=ps
7822*22dc650dSSadaf EbrahimiPartial match: aaaa
7823*22dc650dSSadaf Ebrahimi    aaaab\=ps
7824*22dc650dSSadaf Ebrahimi 0: aaaab
7825*22dc650dSSadaf Ebrahimi
7826*22dc650dSSadaf Ebrahimi/(abc)(?1)/
7827*22dc650dSSadaf Ebrahimi    abca\=ps
7828*22dc650dSSadaf EbrahimiPartial match: abca
7829*22dc650dSSadaf Ebrahimi    abcabc\=ps
7830*22dc650dSSadaf Ebrahimi 0: abcabc
7831*22dc650dSSadaf Ebrahimi
7832*22dc650dSSadaf Ebrahimi/(?(?=abc).*|Z)/
7833*22dc650dSSadaf Ebrahimi    ab\=ps
7834*22dc650dSSadaf EbrahimiPartial match: ab
7835*22dc650dSSadaf Ebrahimi    abcxyz\=ps
7836*22dc650dSSadaf Ebrahimi 0: abcxyz
7837*22dc650dSSadaf Ebrahimi
7838*22dc650dSSadaf Ebrahimi/(abc)++x/
7839*22dc650dSSadaf Ebrahimi    abcab\=ps
7840*22dc650dSSadaf EbrahimiPartial match: abcab
7841*22dc650dSSadaf Ebrahimi    abc\=ps
7842*22dc650dSSadaf EbrahimiPartial match: abc
7843*22dc650dSSadaf Ebrahimi    ab\=ps
7844*22dc650dSSadaf EbrahimiPartial match: ab
7845*22dc650dSSadaf Ebrahimi    abcx
7846*22dc650dSSadaf Ebrahimi 0: abcx
7847*22dc650dSSadaf Ebrahimi
7848*22dc650dSSadaf Ebrahimi/\z/
7849*22dc650dSSadaf Ebrahimi    abc\=ph
7850*22dc650dSSadaf EbrahimiPartial match:
7851*22dc650dSSadaf Ebrahimi    abc\=ps
7852*22dc650dSSadaf Ebrahimi 0:
7853*22dc650dSSadaf Ebrahimi
7854*22dc650dSSadaf Ebrahimi/\Z/
7855*22dc650dSSadaf Ebrahimi    abc\=ph
7856*22dc650dSSadaf EbrahimiPartial match:
7857*22dc650dSSadaf Ebrahimi    abc\=ps
7858*22dc650dSSadaf Ebrahimi 0:
7859*22dc650dSSadaf Ebrahimi    abc\n\=ph
7860*22dc650dSSadaf EbrahimiPartial match: \x0a
7861*22dc650dSSadaf Ebrahimi    abc\n\=ps
7862*22dc650dSSadaf Ebrahimi 0:
7863*22dc650dSSadaf Ebrahimi
7864*22dc650dSSadaf Ebrahimi/c*+(?<=[bc])/
7865*22dc650dSSadaf Ebrahimi    abc\=ph
7866*22dc650dSSadaf EbrahimiPartial match: c
7867*22dc650dSSadaf Ebrahimi    ab\=ph
7868*22dc650dSSadaf EbrahimiPartial match:
7869*22dc650dSSadaf Ebrahimi    abc\=ps
7870*22dc650dSSadaf Ebrahimi 0: c
7871*22dc650dSSadaf Ebrahimi    ab\=ps
7872*22dc650dSSadaf Ebrahimi 0:
7873*22dc650dSSadaf Ebrahimi
7874*22dc650dSSadaf Ebrahimi/c++(?<=[bc])/
7875*22dc650dSSadaf Ebrahimi    abc\=ph
7876*22dc650dSSadaf EbrahimiPartial match: c
7877*22dc650dSSadaf Ebrahimi    ab\=ph
7878*22dc650dSSadaf EbrahimiPartial match:
7879*22dc650dSSadaf Ebrahimi
7880*22dc650dSSadaf Ebrahimi/(?<=(?=.(?<=x)))/
7881*22dc650dSSadaf Ebrahimi    abx
7882*22dc650dSSadaf Ebrahimi 0:
7883*22dc650dSSadaf Ebrahimi    ab\=ph
7884*22dc650dSSadaf EbrahimiPartial match:
7885*22dc650dSSadaf Ebrahimi    bxyz
7886*22dc650dSSadaf Ebrahimi 0:
7887*22dc650dSSadaf Ebrahimi    xyz
7888*22dc650dSSadaf Ebrahimi 0:
7889*22dc650dSSadaf Ebrahimi
7890*22dc650dSSadaf Ebrahimi/(?![ab]).*/
7891*22dc650dSSadaf Ebrahimi    ab\=ph
7892*22dc650dSSadaf EbrahimiPartial match:
7893*22dc650dSSadaf Ebrahimi
7894*22dc650dSSadaf Ebrahimi/c*+/
7895*22dc650dSSadaf Ebrahimi    ab\=ph,offset=2
7896*22dc650dSSadaf EbrahimiPartial match:
7897*22dc650dSSadaf Ebrahimi
7898*22dc650dSSadaf Ebrahimi/
7899*22dc650dSSadaf Ebrahimi/anchored, firstline
7900*22dc650dSSadaf Ebrahimi    \x0a
7901*22dc650dSSadaf Ebrahimi 0: \x0a
7902*22dc650dSSadaf Ebrahimi
7903*22dc650dSSadaf Ebrahimi/
7904*22dc650dSSadaf Ebrahimi/anchored,firstline,no_start_optimize
7905*22dc650dSSadaf Ebrahimi    \x0a
7906*22dc650dSSadaf Ebrahimi 0: \x0a
7907*22dc650dSSadaf Ebrahimi
7908*22dc650dSSadaf Ebrahimi/
7909*22dc650dSSadaf Ebrahimi/firstline
7910*22dc650dSSadaf Ebrahimi    \x0a
7911*22dc650dSSadaf Ebrahimi 0: \x0a
7912*22dc650dSSadaf Ebrahimi    abc\x0adef
7913*22dc650dSSadaf Ebrahimi 0: \x0a
7914*22dc650dSSadaf Ebrahimi
7915*22dc650dSSadaf Ebrahimi/|a(?0)/endanchored
7916*22dc650dSSadaf Ebrahimi    aaaa
7917*22dc650dSSadaf Ebrahimi 0: aaaa
7918*22dc650dSSadaf Ebrahimi 1: aaa
7919*22dc650dSSadaf Ebrahimi 2: aa
7920*22dc650dSSadaf Ebrahimi 3: a
7921*22dc650dSSadaf Ebrahimi 4:
7922*22dc650dSSadaf Ebrahimi
7923*22dc650dSSadaf Ebrahimi# End of testinput6
7924