xref: /aosp_15_r20/external/pcre/testdata/testinput6 (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
12*22dc650dSSadaf Ebrahimi/ab*c/
13*22dc650dSSadaf Ebrahimi    abc
14*22dc650dSSadaf Ebrahimi    abbbbc
15*22dc650dSSadaf Ebrahimi    ac
16*22dc650dSSadaf Ebrahimi
17*22dc650dSSadaf Ebrahimi/ab+c/
18*22dc650dSSadaf Ebrahimi    abc
19*22dc650dSSadaf Ebrahimi    abbbbbbc
20*22dc650dSSadaf Ebrahimi\= Expect no match
21*22dc650dSSadaf Ebrahimi    ac
22*22dc650dSSadaf Ebrahimi    ab
23*22dc650dSSadaf Ebrahimi
24*22dc650dSSadaf Ebrahimi/a*/no_auto_possess
25*22dc650dSSadaf Ebrahimi    a
26*22dc650dSSadaf Ebrahimi    aaaaaaaaaaaaaaaaa
27*22dc650dSSadaf Ebrahimi    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\=ovector=10
28*22dc650dSSadaf Ebrahimi    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\=dfa_shortest
29*22dc650dSSadaf Ebrahimi
30*22dc650dSSadaf Ebrahimi/(a|abcd|african)/
31*22dc650dSSadaf Ebrahimi    a
32*22dc650dSSadaf Ebrahimi    abcd
33*22dc650dSSadaf Ebrahimi    african
34*22dc650dSSadaf Ebrahimi
35*22dc650dSSadaf Ebrahimi/^abc/
36*22dc650dSSadaf Ebrahimi    abcdef
37*22dc650dSSadaf Ebrahimi\= Expect no match
38*22dc650dSSadaf Ebrahimi    xyzabc
39*22dc650dSSadaf Ebrahimi    xyz\nabc
40*22dc650dSSadaf Ebrahimi
41*22dc650dSSadaf Ebrahimi/^abc/m
42*22dc650dSSadaf Ebrahimi    abcdef
43*22dc650dSSadaf Ebrahimi    xyz\nabc
44*22dc650dSSadaf Ebrahimi\= Expect no match
45*22dc650dSSadaf Ebrahimi    xyzabc
46*22dc650dSSadaf Ebrahimi
47*22dc650dSSadaf Ebrahimi/\Aabc/
48*22dc650dSSadaf Ebrahimi    abcdef
49*22dc650dSSadaf Ebrahimi\= Expect no match
50*22dc650dSSadaf Ebrahimi    xyzabc
51*22dc650dSSadaf Ebrahimi    xyz\nabc
52*22dc650dSSadaf Ebrahimi
53*22dc650dSSadaf Ebrahimi/\Aabc/m
54*22dc650dSSadaf Ebrahimi    abcdef
55*22dc650dSSadaf Ebrahimi\= Expect no match
56*22dc650dSSadaf Ebrahimi    xyzabc
57*22dc650dSSadaf Ebrahimi    xyz\nabc
58*22dc650dSSadaf Ebrahimi
59*22dc650dSSadaf Ebrahimi/\Gabc/
60*22dc650dSSadaf Ebrahimi    abcdef
61*22dc650dSSadaf Ebrahimi    xyzabc\=offset=3
62*22dc650dSSadaf Ebrahimi\= Expect no match
63*22dc650dSSadaf Ebrahimi    xyzabc
64*22dc650dSSadaf Ebrahimi    xyzabc\=offset=2
65*22dc650dSSadaf Ebrahimi
66*22dc650dSSadaf Ebrahimi/x\dy\Dz/
67*22dc650dSSadaf Ebrahimi    x9yzz
68*22dc650dSSadaf Ebrahimi    x0y+z
69*22dc650dSSadaf Ebrahimi\= Expect no match
70*22dc650dSSadaf Ebrahimi    xyz
71*22dc650dSSadaf Ebrahimi    xxy0z
72*22dc650dSSadaf Ebrahimi
73*22dc650dSSadaf Ebrahimi/x\sy\Sz/
74*22dc650dSSadaf Ebrahimi    x yzz
75*22dc650dSSadaf Ebrahimi    x y+z
76*22dc650dSSadaf Ebrahimi\= Expect no match
77*22dc650dSSadaf Ebrahimi    xyz
78*22dc650dSSadaf Ebrahimi    xxyyz
79*22dc650dSSadaf Ebrahimi
80*22dc650dSSadaf Ebrahimi/x\wy\Wz/
81*22dc650dSSadaf Ebrahimi    xxy+z
82*22dc650dSSadaf Ebrahimi\= Expect no match
83*22dc650dSSadaf Ebrahimi    xxy0z
84*22dc650dSSadaf Ebrahimi    x+y+z
85*22dc650dSSadaf Ebrahimi
86*22dc650dSSadaf Ebrahimi/x.y/
87*22dc650dSSadaf Ebrahimi    x+y
88*22dc650dSSadaf Ebrahimi    x-y
89*22dc650dSSadaf Ebrahimi\= Expect no match
90*22dc650dSSadaf Ebrahimi    x\ny
91*22dc650dSSadaf Ebrahimi
92*22dc650dSSadaf Ebrahimi/x.y/s
93*22dc650dSSadaf Ebrahimi    x+y
94*22dc650dSSadaf Ebrahimi    x-y
95*22dc650dSSadaf Ebrahimi    x\ny
96*22dc650dSSadaf Ebrahimi
97*22dc650dSSadaf Ebrahimi/(a.b(?s)c.d|x.y)p.q/
98*22dc650dSSadaf Ebrahimi    a+bc+dp+q
99*22dc650dSSadaf Ebrahimi    a+bc\ndp+q
100*22dc650dSSadaf Ebrahimi    x\nyp+q
101*22dc650dSSadaf Ebrahimi\= Expect no match
102*22dc650dSSadaf Ebrahimi    a\nbc\ndp+q
103*22dc650dSSadaf Ebrahimi    a+bc\ndp\nq
104*22dc650dSSadaf Ebrahimi    x\nyp\nq
105*22dc650dSSadaf Ebrahimi
106*22dc650dSSadaf Ebrahimi/a\d\z/
107*22dc650dSSadaf Ebrahimi    ba0
108*22dc650dSSadaf Ebrahimi\= Expect no match
109*22dc650dSSadaf Ebrahimi    ba0\n
110*22dc650dSSadaf Ebrahimi    ba0\ncd
111*22dc650dSSadaf Ebrahimi
112*22dc650dSSadaf Ebrahimi/a\d\z/m
113*22dc650dSSadaf Ebrahimi    ba0
114*22dc650dSSadaf Ebrahimi\= Expect no match
115*22dc650dSSadaf Ebrahimi    ba0\n
116*22dc650dSSadaf Ebrahimi    ba0\ncd
117*22dc650dSSadaf Ebrahimi
118*22dc650dSSadaf Ebrahimi/a\d\Z/
119*22dc650dSSadaf Ebrahimi    ba0
120*22dc650dSSadaf Ebrahimi    ba0\n
121*22dc650dSSadaf Ebrahimi\= Expect no match
122*22dc650dSSadaf Ebrahimi    ba0\ncd
123*22dc650dSSadaf Ebrahimi
124*22dc650dSSadaf Ebrahimi/a\d\Z/m
125*22dc650dSSadaf Ebrahimi    ba0
126*22dc650dSSadaf Ebrahimi    ba0\n
127*22dc650dSSadaf Ebrahimi\= Expect no match
128*22dc650dSSadaf Ebrahimi    ba0\ncd
129*22dc650dSSadaf Ebrahimi
130*22dc650dSSadaf Ebrahimi/a\d$/
131*22dc650dSSadaf Ebrahimi    ba0
132*22dc650dSSadaf Ebrahimi    ba0\n
133*22dc650dSSadaf Ebrahimi\= Expect no match
134*22dc650dSSadaf Ebrahimi    ba0\ncd
135*22dc650dSSadaf Ebrahimi
136*22dc650dSSadaf Ebrahimi/a\d$/m
137*22dc650dSSadaf Ebrahimi    ba0
138*22dc650dSSadaf Ebrahimi    ba0\n
139*22dc650dSSadaf Ebrahimi    ba0\ncd
140*22dc650dSSadaf Ebrahimi
141*22dc650dSSadaf Ebrahimi/abc/i
142*22dc650dSSadaf Ebrahimi    abc
143*22dc650dSSadaf Ebrahimi    aBc
144*22dc650dSSadaf Ebrahimi    ABC
145*22dc650dSSadaf Ebrahimi
146*22dc650dSSadaf Ebrahimi/[^a]/
147*22dc650dSSadaf Ebrahimi    abcd
148*22dc650dSSadaf Ebrahimi
149*22dc650dSSadaf Ebrahimi/ab?\w/
150*22dc650dSSadaf Ebrahimi    abz
151*22dc650dSSadaf Ebrahimi    abbz
152*22dc650dSSadaf Ebrahimi    azz
153*22dc650dSSadaf Ebrahimi
154*22dc650dSSadaf Ebrahimi/x{0,3}yz/
155*22dc650dSSadaf Ebrahimi    ayzq
156*22dc650dSSadaf Ebrahimi    axyzq
157*22dc650dSSadaf Ebrahimi    axxyz
158*22dc650dSSadaf Ebrahimi    axxxyzq
159*22dc650dSSadaf Ebrahimi    axxxxyzq
160*22dc650dSSadaf Ebrahimi\= Expect no match
161*22dc650dSSadaf Ebrahimi    ax
162*22dc650dSSadaf Ebrahimi    axx
163*22dc650dSSadaf Ebrahimi
164*22dc650dSSadaf Ebrahimi/x{3}yz/
165*22dc650dSSadaf Ebrahimi    axxxyzq
166*22dc650dSSadaf Ebrahimi    axxxxyzq
167*22dc650dSSadaf Ebrahimi\= Expect no match
168*22dc650dSSadaf Ebrahimi    ax
169*22dc650dSSadaf Ebrahimi    axx
170*22dc650dSSadaf Ebrahimi    ayzq
171*22dc650dSSadaf Ebrahimi    axyzq
172*22dc650dSSadaf Ebrahimi    axxyz
173*22dc650dSSadaf Ebrahimi
174*22dc650dSSadaf Ebrahimi/x{2,3}yz/
175*22dc650dSSadaf Ebrahimi    axxyz
176*22dc650dSSadaf Ebrahimi    axxxyzq
177*22dc650dSSadaf Ebrahimi    axxxxyzq
178*22dc650dSSadaf Ebrahimi\= Expect no match
179*22dc650dSSadaf Ebrahimi    ax
180*22dc650dSSadaf Ebrahimi    axx
181*22dc650dSSadaf Ebrahimi    ayzq
182*22dc650dSSadaf Ebrahimi    axyzq
183*22dc650dSSadaf Ebrahimi
184*22dc650dSSadaf Ebrahimi/[^a]+/no_auto_possess
185*22dc650dSSadaf Ebrahimi    bac
186*22dc650dSSadaf Ebrahimi    bcdefax
187*22dc650dSSadaf Ebrahimi\= Expect no match
188*22dc650dSSadaf Ebrahimi    aaaaa
189*22dc650dSSadaf Ebrahimi
190*22dc650dSSadaf Ebrahimi/[^a]*/no_auto_possess
191*22dc650dSSadaf Ebrahimi    bac
192*22dc650dSSadaf Ebrahimi    bcdefax
193*22dc650dSSadaf Ebrahimi    aaaaa
194*22dc650dSSadaf Ebrahimi
195*22dc650dSSadaf Ebrahimi/[^a]{3,5}/no_auto_possess
196*22dc650dSSadaf Ebrahimi    xyz
197*22dc650dSSadaf Ebrahimi    awxyza
198*22dc650dSSadaf Ebrahimi    abcdefa
199*22dc650dSSadaf Ebrahimi    abcdefghijk
200*22dc650dSSadaf Ebrahimi\= Expect no match
201*22dc650dSSadaf Ebrahimi    axya
202*22dc650dSSadaf Ebrahimi    axa
203*22dc650dSSadaf Ebrahimi    aaaaa
204*22dc650dSSadaf Ebrahimi
205*22dc650dSSadaf Ebrahimi/\d*/
206*22dc650dSSadaf Ebrahimi    1234b567
207*22dc650dSSadaf Ebrahimi    xyz
208*22dc650dSSadaf Ebrahimi
209*22dc650dSSadaf Ebrahimi/\D*/
210*22dc650dSSadaf Ebrahimi    a1234b567
211*22dc650dSSadaf Ebrahimi    xyz
212*22dc650dSSadaf Ebrahimi
213*22dc650dSSadaf Ebrahimi/\d+/
214*22dc650dSSadaf Ebrahimi    ab1234c56
215*22dc650dSSadaf Ebrahimi\= Expect no match
216*22dc650dSSadaf Ebrahimi    xyz
217*22dc650dSSadaf Ebrahimi
218*22dc650dSSadaf Ebrahimi/\D+/
219*22dc650dSSadaf Ebrahimi    ab123c56
220*22dc650dSSadaf Ebrahimi\= Expect no match
221*22dc650dSSadaf Ebrahimi    789
222*22dc650dSSadaf Ebrahimi
223*22dc650dSSadaf Ebrahimi/\d?A/
224*22dc650dSSadaf Ebrahimi    045ABC
225*22dc650dSSadaf Ebrahimi    ABC
226*22dc650dSSadaf Ebrahimi\= Expect no match
227*22dc650dSSadaf Ebrahimi    XYZ
228*22dc650dSSadaf Ebrahimi
229*22dc650dSSadaf Ebrahimi/\D?A/
230*22dc650dSSadaf Ebrahimi    ABC
231*22dc650dSSadaf Ebrahimi    BAC
232*22dc650dSSadaf Ebrahimi    9ABC
233*22dc650dSSadaf Ebrahimi
234*22dc650dSSadaf Ebrahimi/a+/
235*22dc650dSSadaf Ebrahimi    aaaa
236*22dc650dSSadaf Ebrahimi
237*22dc650dSSadaf Ebrahimi/^.*xyz/
238*22dc650dSSadaf Ebrahimi    xyz
239*22dc650dSSadaf Ebrahimi    ggggggggxyz
240*22dc650dSSadaf Ebrahimi
241*22dc650dSSadaf Ebrahimi/^.+xyz/
242*22dc650dSSadaf Ebrahimi    abcdxyz
243*22dc650dSSadaf Ebrahimi    axyz
244*22dc650dSSadaf Ebrahimi\= Expect no match
245*22dc650dSSadaf Ebrahimi    xyz
246*22dc650dSSadaf Ebrahimi
247*22dc650dSSadaf Ebrahimi/^.?xyz/
248*22dc650dSSadaf Ebrahimi    xyz
249*22dc650dSSadaf Ebrahimi    cxyz
250*22dc650dSSadaf Ebrahimi
251*22dc650dSSadaf Ebrahimi/^\d{2,3}X/
252*22dc650dSSadaf Ebrahimi    12X
253*22dc650dSSadaf Ebrahimi    123X
254*22dc650dSSadaf Ebrahimi\= Expect no match
255*22dc650dSSadaf Ebrahimi    X
256*22dc650dSSadaf Ebrahimi    1X
257*22dc650dSSadaf Ebrahimi    1234X
258*22dc650dSSadaf Ebrahimi
259*22dc650dSSadaf Ebrahimi/^[abcd]\d/
260*22dc650dSSadaf Ebrahimi    a45
261*22dc650dSSadaf Ebrahimi    b93
262*22dc650dSSadaf Ebrahimi    c99z
263*22dc650dSSadaf Ebrahimi    d04
264*22dc650dSSadaf Ebrahimi\= Expect no match
265*22dc650dSSadaf Ebrahimi    e45
266*22dc650dSSadaf Ebrahimi    abcd
267*22dc650dSSadaf Ebrahimi    abcd1234
268*22dc650dSSadaf Ebrahimi    1234
269*22dc650dSSadaf Ebrahimi
270*22dc650dSSadaf Ebrahimi/^[abcd]*\d/
271*22dc650dSSadaf Ebrahimi    a45
272*22dc650dSSadaf Ebrahimi    b93
273*22dc650dSSadaf Ebrahimi    c99z
274*22dc650dSSadaf Ebrahimi    d04
275*22dc650dSSadaf Ebrahimi    abcd1234
276*22dc650dSSadaf Ebrahimi    1234
277*22dc650dSSadaf Ebrahimi\= Expect no match
278*22dc650dSSadaf Ebrahimi    e45
279*22dc650dSSadaf Ebrahimi    abcd
280*22dc650dSSadaf Ebrahimi
281*22dc650dSSadaf Ebrahimi/^[abcd]+\d/
282*22dc650dSSadaf Ebrahimi    a45
283*22dc650dSSadaf Ebrahimi    b93
284*22dc650dSSadaf Ebrahimi    c99z
285*22dc650dSSadaf Ebrahimi    d04
286*22dc650dSSadaf Ebrahimi    abcd1234
287*22dc650dSSadaf Ebrahimi\= Expect no match
288*22dc650dSSadaf Ebrahimi    1234
289*22dc650dSSadaf Ebrahimi    e45
290*22dc650dSSadaf Ebrahimi    abcd
291*22dc650dSSadaf Ebrahimi
292*22dc650dSSadaf Ebrahimi/^a+X/
293*22dc650dSSadaf Ebrahimi    aX
294*22dc650dSSadaf Ebrahimi    aaX
295*22dc650dSSadaf Ebrahimi
296*22dc650dSSadaf Ebrahimi/^[abcd]?\d/
297*22dc650dSSadaf Ebrahimi    a45
298*22dc650dSSadaf Ebrahimi    b93
299*22dc650dSSadaf Ebrahimi    c99z
300*22dc650dSSadaf Ebrahimi    d04
301*22dc650dSSadaf Ebrahimi    1234
302*22dc650dSSadaf Ebrahimi\= Expect no match
303*22dc650dSSadaf Ebrahimi    abcd1234
304*22dc650dSSadaf Ebrahimi    e45
305*22dc650dSSadaf Ebrahimi
306*22dc650dSSadaf Ebrahimi/^[abcd]{2,3}\d/
307*22dc650dSSadaf Ebrahimi    ab45
308*22dc650dSSadaf Ebrahimi    bcd93
309*22dc650dSSadaf Ebrahimi\= Expect no match
310*22dc650dSSadaf Ebrahimi    1234
311*22dc650dSSadaf Ebrahimi    a36
312*22dc650dSSadaf Ebrahimi    abcd1234
313*22dc650dSSadaf Ebrahimi    ee45
314*22dc650dSSadaf Ebrahimi
315*22dc650dSSadaf Ebrahimi/^(abc)*\d/
316*22dc650dSSadaf Ebrahimi    abc45
317*22dc650dSSadaf Ebrahimi    abcabcabc45
318*22dc650dSSadaf Ebrahimi    42xyz
319*22dc650dSSadaf Ebrahimi
320*22dc650dSSadaf Ebrahimi/^(abc)+\d/
321*22dc650dSSadaf Ebrahimi    abc45
322*22dc650dSSadaf Ebrahimi    abcabcabc45
323*22dc650dSSadaf Ebrahimi\= Expect no match
324*22dc650dSSadaf Ebrahimi    42xyz
325*22dc650dSSadaf Ebrahimi
326*22dc650dSSadaf Ebrahimi/^(abc)?\d/
327*22dc650dSSadaf Ebrahimi    abc45
328*22dc650dSSadaf Ebrahimi    42xyz
329*22dc650dSSadaf Ebrahimi\= Expect no match
330*22dc650dSSadaf Ebrahimi    abcabcabc45
331*22dc650dSSadaf Ebrahimi
332*22dc650dSSadaf Ebrahimi/^(abc){2,3}\d/
333*22dc650dSSadaf Ebrahimi    abcabc45
334*22dc650dSSadaf Ebrahimi    abcabcabc45
335*22dc650dSSadaf Ebrahimi\= Expect no match
336*22dc650dSSadaf Ebrahimi    abcabcabcabc45
337*22dc650dSSadaf Ebrahimi    abc45
338*22dc650dSSadaf Ebrahimi    42xyz
339*22dc650dSSadaf Ebrahimi
340*22dc650dSSadaf Ebrahimi/1(abc|xyz)2(?1)3/
341*22dc650dSSadaf Ebrahimi    1abc2abc3456
342*22dc650dSSadaf Ebrahimi    1abc2xyz3456
343*22dc650dSSadaf Ebrahimi
344*22dc650dSSadaf Ebrahimi/^(a*\w|ab)=(a*\w|ab)/
345*22dc650dSSadaf Ebrahimi    ab=ab
346*22dc650dSSadaf Ebrahimi
347*22dc650dSSadaf Ebrahimi/^(a*\w|ab)=(?1)/
348*22dc650dSSadaf Ebrahimi    ab=ab
349*22dc650dSSadaf Ebrahimi
350*22dc650dSSadaf Ebrahimi/^([^()]|\((?1)*\))*$/
351*22dc650dSSadaf Ebrahimi    abc
352*22dc650dSSadaf Ebrahimi    a(b)c
353*22dc650dSSadaf Ebrahimi    a(b(c))d
354*22dc650dSSadaf Ebrahimi\= Expect no match)
355*22dc650dSSadaf Ebrahimi    a(b(c)d
356*22dc650dSSadaf Ebrahimi
357*22dc650dSSadaf Ebrahimi/^>abc>([^()]|\((?1)*\))*<xyz<$/
358*22dc650dSSadaf Ebrahimi    >abc>123<xyz<
359*22dc650dSSadaf Ebrahimi    >abc>1(2)3<xyz<
360*22dc650dSSadaf Ebrahimi    >abc>(1(2)3)<xyz<
361*22dc650dSSadaf Ebrahimi
362*22dc650dSSadaf Ebrahimi/^(?>a*)\d/
363*22dc650dSSadaf Ebrahimi    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876
364*22dc650dSSadaf Ebrahimi\= Expect no match
365*22dc650dSSadaf Ebrahimi    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
366*22dc650dSSadaf Ebrahimi
367*22dc650dSSadaf Ebrahimi/< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x
368*22dc650dSSadaf Ebrahimi    <>
369*22dc650dSSadaf Ebrahimi    <abcd>
370*22dc650dSSadaf Ebrahimi    <abc <123> hij>
371*22dc650dSSadaf Ebrahimi    <abc <def> hij>
372*22dc650dSSadaf Ebrahimi    <abc<>def>
373*22dc650dSSadaf Ebrahimi    <abc<>
374*22dc650dSSadaf Ebrahimi\= Expect no match
375*22dc650dSSadaf Ebrahimi    <abc
376*22dc650dSSadaf Ebrahimi
377*22dc650dSSadaf Ebrahimi/^(?(?=abc)\w{3}:|\d\d)$/
378*22dc650dSSadaf Ebrahimi    abc:
379*22dc650dSSadaf Ebrahimi    12
380*22dc650dSSadaf Ebrahimi\= Expect no match
381*22dc650dSSadaf Ebrahimi    123
382*22dc650dSSadaf Ebrahimi    xyz
383*22dc650dSSadaf Ebrahimi
384*22dc650dSSadaf Ebrahimi/^(?(?!abc)\d\d|\w{3}:)$/
385*22dc650dSSadaf Ebrahimi    abc:
386*22dc650dSSadaf Ebrahimi    12
387*22dc650dSSadaf Ebrahimi\= Expect no match
388*22dc650dSSadaf Ebrahimi    123
389*22dc650dSSadaf Ebrahimi    xyz
390*22dc650dSSadaf Ebrahimi
391*22dc650dSSadaf Ebrahimi/^(?=abc)\w{5}:$/
392*22dc650dSSadaf Ebrahimi    abcde:
393*22dc650dSSadaf Ebrahimi\= Expect no match
394*22dc650dSSadaf Ebrahimi    abc..
395*22dc650dSSadaf Ebrahimi    123
396*22dc650dSSadaf Ebrahimi    vwxyz
397*22dc650dSSadaf Ebrahimi
398*22dc650dSSadaf Ebrahimi/^(?!abc)\d\d$/
399*22dc650dSSadaf Ebrahimi    12
400*22dc650dSSadaf Ebrahimi\= Expect no match
401*22dc650dSSadaf Ebrahimi    abcde:
402*22dc650dSSadaf Ebrahimi    abc..
403*22dc650dSSadaf Ebrahimi    123
404*22dc650dSSadaf Ebrahimi    vwxyz
405*22dc650dSSadaf Ebrahimi
406*22dc650dSSadaf Ebrahimi/(?<=abc|xy)123/
407*22dc650dSSadaf Ebrahimi    abc12345
408*22dc650dSSadaf Ebrahimi    wxy123z
409*22dc650dSSadaf Ebrahimi\= Expect no match
410*22dc650dSSadaf Ebrahimi    123abc
411*22dc650dSSadaf Ebrahimi
412*22dc650dSSadaf Ebrahimi/(?<!abc|xy)123/
413*22dc650dSSadaf Ebrahimi    123abc
414*22dc650dSSadaf Ebrahimi    mno123456
415*22dc650dSSadaf Ebrahimi\= Expect no match
416*22dc650dSSadaf Ebrahimi    abc12345
417*22dc650dSSadaf Ebrahimi    wxy123z
418*22dc650dSSadaf Ebrahimi
419*22dc650dSSadaf Ebrahimi/abc(?C1)xyz/
420*22dc650dSSadaf Ebrahimi    abcxyz
421*22dc650dSSadaf Ebrahimi    123abcxyz999
422*22dc650dSSadaf Ebrahimi
423*22dc650dSSadaf Ebrahimi/(ab|cd){3,4}/auto_callout
424*22dc650dSSadaf Ebrahimi  ababab
425*22dc650dSSadaf Ebrahimi  abcdabcd
426*22dc650dSSadaf Ebrahimi  abcdcdcdcdcd
427*22dc650dSSadaf Ebrahimi
428*22dc650dSSadaf Ebrahimi/^abc/
429*22dc650dSSadaf Ebrahimi    abcdef
430*22dc650dSSadaf Ebrahimi\= Expect no match
431*22dc650dSSadaf Ebrahimi    abcdef\=notbol
432*22dc650dSSadaf Ebrahimi
433*22dc650dSSadaf Ebrahimi/^(a*|xyz)/
434*22dc650dSSadaf Ebrahimi    bcd
435*22dc650dSSadaf Ebrahimi    aaabcd
436*22dc650dSSadaf Ebrahimi    xyz
437*22dc650dSSadaf Ebrahimi    xyz\=notempty
438*22dc650dSSadaf Ebrahimi\= Expect no match
439*22dc650dSSadaf Ebrahimi    bcd\=notempty
440*22dc650dSSadaf Ebrahimi
441*22dc650dSSadaf Ebrahimi/xyz$/
442*22dc650dSSadaf Ebrahimi    xyz
443*22dc650dSSadaf Ebrahimi    xyz\n
444*22dc650dSSadaf Ebrahimi\= Expect no match
445*22dc650dSSadaf Ebrahimi    xyz\=noteol
446*22dc650dSSadaf Ebrahimi    xyz\n\=noteol
447*22dc650dSSadaf Ebrahimi
448*22dc650dSSadaf Ebrahimi/xyz$/m
449*22dc650dSSadaf Ebrahimi    xyz
450*22dc650dSSadaf Ebrahimi    xyz\n
451*22dc650dSSadaf Ebrahimi    abcxyz\npqr
452*22dc650dSSadaf Ebrahimi    abcxyz\npqr\=noteol
453*22dc650dSSadaf Ebrahimi    xyz\n\=noteol
454*22dc650dSSadaf Ebrahimi\= Expect no match
455*22dc650dSSadaf Ebrahimi    xyz\=noteol
456*22dc650dSSadaf Ebrahimi
457*22dc650dSSadaf Ebrahimi/\Gabc/
458*22dc650dSSadaf Ebrahimi    abcdef
459*22dc650dSSadaf Ebrahimi    defabcxyz\=offset=3
460*22dc650dSSadaf Ebrahimi\= Expect no match
461*22dc650dSSadaf Ebrahimi    defabcxyz
462*22dc650dSSadaf Ebrahimi
463*22dc650dSSadaf Ebrahimi/^abcdef/
464*22dc650dSSadaf Ebrahimi    ab\=ps
465*22dc650dSSadaf Ebrahimi    abcde\=ps
466*22dc650dSSadaf Ebrahimi    abcdef\=ps
467*22dc650dSSadaf Ebrahimi\= Expect no match
468*22dc650dSSadaf Ebrahimi    abx\=ps
469*22dc650dSSadaf Ebrahimi
470*22dc650dSSadaf Ebrahimi/^a{2,4}\d+z/
471*22dc650dSSadaf Ebrahimi    a\=ps
472*22dc650dSSadaf Ebrahimi    aa\=ps
473*22dc650dSSadaf Ebrahimi    aa2\=ps
474*22dc650dSSadaf Ebrahimi    aaa\=ps
475*22dc650dSSadaf Ebrahimi    aaa23\=ps
476*22dc650dSSadaf Ebrahimi    aaaa12345\=ps
477*22dc650dSSadaf Ebrahimi    aa0z\=ps
478*22dc650dSSadaf Ebrahimi    aaaa4444444444444z\=ps
479*22dc650dSSadaf Ebrahimi\= Expect no match
480*22dc650dSSadaf Ebrahimi    az\=ps
481*22dc650dSSadaf Ebrahimi    aaaaa\=ps
482*22dc650dSSadaf Ebrahimi    a56\=ps
483*22dc650dSSadaf Ebrahimi
484*22dc650dSSadaf Ebrahimi/^abcdef/
485*22dc650dSSadaf Ebrahimi   abc\=ps
486*22dc650dSSadaf Ebrahimi   def\=dfa_restart
487*22dc650dSSadaf Ebrahimi
488*22dc650dSSadaf Ebrahimi/(?<=foo)bar/
489*22dc650dSSadaf Ebrahimi   foob\=ps,offset=2,allusedtext
490*22dc650dSSadaf Ebrahimi   foobar...\=ps,dfa_restart,offset=4
491*22dc650dSSadaf Ebrahimi   foobar\=offset=2
492*22dc650dSSadaf Ebrahimi\= Expect no match
493*22dc650dSSadaf Ebrahimi   xyzfo\=ps
494*22dc650dSSadaf Ebrahimi   obar\=dfa_restart
495*22dc650dSSadaf Ebrahimi
496*22dc650dSSadaf Ebrahimi/(ab*(cd|ef))+X/
497*22dc650dSSadaf Ebrahimi    lkjhlkjhlkjhlkjhabbbbbbcdaefabbbbbbbefa\=ps,notbol,noteol
498*22dc650dSSadaf Ebrahimi    cdabbbbbbbb\=ps,notbol,dfa_restart,noteol
499*22dc650dSSadaf Ebrahimi    efabbbbbbbbbbbbbbbb\=ps,notbol,dfa_restart,noteol
500*22dc650dSSadaf Ebrahimi    bbbbbbbbbbbbcdXyasdfadf\=ps,notbol,dfa_restart,noteol
501*22dc650dSSadaf Ebrahimi\= Expect no match
502*22dc650dSSadaf Ebrahimi    adfadadaklhlkalkajhlkjahdfasdfasdfladsfjkj\=ps,noteol
503*22dc650dSSadaf Ebrahimi
504*22dc650dSSadaf Ebrahimi/the quick brown fox/
505*22dc650dSSadaf Ebrahimi    the quick brown fox
506*22dc650dSSadaf Ebrahimi    What do you know about the quick brown fox?
507*22dc650dSSadaf Ebrahimi\= Expect no match
508*22dc650dSSadaf Ebrahimi    The quick brown FOX
509*22dc650dSSadaf Ebrahimi    What do you know about THE QUICK BROWN FOX?
510*22dc650dSSadaf Ebrahimi
511*22dc650dSSadaf Ebrahimi/The quick brown fox/i
512*22dc650dSSadaf Ebrahimi    the quick brown fox
513*22dc650dSSadaf Ebrahimi    The quick brown FOX
514*22dc650dSSadaf Ebrahimi    What do you know about the quick brown fox?
515*22dc650dSSadaf Ebrahimi    What do you know about THE QUICK BROWN FOX?
516*22dc650dSSadaf Ebrahimi
517*22dc650dSSadaf Ebrahimi/abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
518*22dc650dSSadaf Ebrahimi    abcd\t\n\r\f\a\e9;\$\\?caxyz
519*22dc650dSSadaf Ebrahimi
520*22dc650dSSadaf Ebrahimi/a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
521*22dc650dSSadaf Ebrahimi    abxyzpqrrrabbxyyyypqAzz
522*22dc650dSSadaf Ebrahimi    abxyzpqrrrabbxyyyypqAzz
523*22dc650dSSadaf Ebrahimi    aabxyzpqrrrabbxyyyypqAzz
524*22dc650dSSadaf Ebrahimi    aaabxyzpqrrrabbxyyyypqAzz
525*22dc650dSSadaf Ebrahimi    aaaabxyzpqrrrabbxyyyypqAzz
526*22dc650dSSadaf Ebrahimi    abcxyzpqrrrabbxyyyypqAzz
527*22dc650dSSadaf Ebrahimi    aabcxyzpqrrrabbxyyyypqAzz
528*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypAzz
529*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypqAzz
530*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypqqAzz
531*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypqqqAzz
532*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypqqqqAzz
533*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypqqqqqAzz
534*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypqqqqqqAzz
535*22dc650dSSadaf Ebrahimi    aaaabcxyzpqrrrabbxyyyypqAzz
536*22dc650dSSadaf Ebrahimi    abxyzzpqrrrabbxyyyypqAzz
537*22dc650dSSadaf Ebrahimi    aabxyzzzpqrrrabbxyyyypqAzz
538*22dc650dSSadaf Ebrahimi    aaabxyzzzzpqrrrabbxyyyypqAzz
539*22dc650dSSadaf Ebrahimi    aaaabxyzzzzpqrrrabbxyyyypqAzz
540*22dc650dSSadaf Ebrahimi    abcxyzzpqrrrabbxyyyypqAzz
541*22dc650dSSadaf Ebrahimi    aabcxyzzzpqrrrabbxyyyypqAzz
542*22dc650dSSadaf Ebrahimi    aaabcxyzzzzpqrrrabbxyyyypqAzz
543*22dc650dSSadaf Ebrahimi    aaaabcxyzzzzpqrrrabbxyyyypqAzz
544*22dc650dSSadaf Ebrahimi    aaaabcxyzzzzpqrrrabbbxyyyypqAzz
545*22dc650dSSadaf Ebrahimi    aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
546*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypABzz
547*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypABBzz
548*22dc650dSSadaf Ebrahimi    >>>aaabxyzpqrrrabbxyyyypqAzz
549*22dc650dSSadaf Ebrahimi    >aaaabxyzpqrrrabbxyyyypqAzz
550*22dc650dSSadaf Ebrahimi    >>>>abcxyzpqrrrabbxyyyypqAzz
551*22dc650dSSadaf Ebrahimi\= Expect no match
552*22dc650dSSadaf Ebrahimi    abxyzpqrrabbxyyyypqAzz
553*22dc650dSSadaf Ebrahimi    abxyzpqrrrrabbxyyyypqAzz
554*22dc650dSSadaf Ebrahimi    abxyzpqrrrabxyyyypqAzz
555*22dc650dSSadaf Ebrahimi    aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
556*22dc650dSSadaf Ebrahimi    aaaabcxyzzzzpqrrrabbbxyyypqAzz
557*22dc650dSSadaf Ebrahimi    aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
558*22dc650dSSadaf Ebrahimi
559*22dc650dSSadaf Ebrahimi/^(abc){1,2}zz/
560*22dc650dSSadaf Ebrahimi    abczz
561*22dc650dSSadaf Ebrahimi    abcabczz
562*22dc650dSSadaf Ebrahimi\= Expect no match
563*22dc650dSSadaf Ebrahimi    zz
564*22dc650dSSadaf Ebrahimi    abcabcabczz
565*22dc650dSSadaf Ebrahimi    >>abczz
566*22dc650dSSadaf Ebrahimi
567*22dc650dSSadaf Ebrahimi/^(b+?|a){1,2}?c/
568*22dc650dSSadaf Ebrahimi    bc
569*22dc650dSSadaf Ebrahimi    bbc
570*22dc650dSSadaf Ebrahimi    bbbc
571*22dc650dSSadaf Ebrahimi    bac
572*22dc650dSSadaf Ebrahimi    bbac
573*22dc650dSSadaf Ebrahimi    aac
574*22dc650dSSadaf Ebrahimi    abbbbbbbbbbbc
575*22dc650dSSadaf Ebrahimi    bbbbbbbbbbbac
576*22dc650dSSadaf Ebrahimi\= Expect no match
577*22dc650dSSadaf Ebrahimi    aaac
578*22dc650dSSadaf Ebrahimi    abbbbbbbbbbbac
579*22dc650dSSadaf Ebrahimi
580*22dc650dSSadaf Ebrahimi/^(b+|a){1,2}c/
581*22dc650dSSadaf Ebrahimi    bc
582*22dc650dSSadaf Ebrahimi    bbc
583*22dc650dSSadaf Ebrahimi    bbbc
584*22dc650dSSadaf Ebrahimi    bac
585*22dc650dSSadaf Ebrahimi    bbac
586*22dc650dSSadaf Ebrahimi    aac
587*22dc650dSSadaf Ebrahimi    abbbbbbbbbbbc
588*22dc650dSSadaf Ebrahimi    bbbbbbbbbbbac
589*22dc650dSSadaf Ebrahimi\= Expect no match
590*22dc650dSSadaf Ebrahimi    aaac
591*22dc650dSSadaf Ebrahimi    abbbbbbbbbbbac
592*22dc650dSSadaf Ebrahimi
593*22dc650dSSadaf Ebrahimi/^(b+|a){1,2}?bc/
594*22dc650dSSadaf Ebrahimi    bbc
595*22dc650dSSadaf Ebrahimi
596*22dc650dSSadaf Ebrahimi/^(b*|ba){1,2}?bc/
597*22dc650dSSadaf Ebrahimi    babc
598*22dc650dSSadaf Ebrahimi    bbabc
599*22dc650dSSadaf Ebrahimi    bababc
600*22dc650dSSadaf Ebrahimi\= Expect no match
601*22dc650dSSadaf Ebrahimi    bababbc
602*22dc650dSSadaf Ebrahimi    babababc
603*22dc650dSSadaf Ebrahimi
604*22dc650dSSadaf Ebrahimi/^(ba|b*){1,2}?bc/
605*22dc650dSSadaf Ebrahimi    babc
606*22dc650dSSadaf Ebrahimi    bbabc
607*22dc650dSSadaf Ebrahimi    bababc
608*22dc650dSSadaf Ebrahimi\= Expect no match
609*22dc650dSSadaf Ebrahimi    bababbc
610*22dc650dSSadaf Ebrahimi    babababc
611*22dc650dSSadaf Ebrahimi
612*22dc650dSSadaf Ebrahimi/^\ca\cA\c[\c{\c:/
613*22dc650dSSadaf Ebrahimi    \x01\x01\e;z
614*22dc650dSSadaf Ebrahimi
615*22dc650dSSadaf Ebrahimi/^[ab\]cde]/
616*22dc650dSSadaf Ebrahimi    athing
617*22dc650dSSadaf Ebrahimi    bthing
618*22dc650dSSadaf Ebrahimi    ]thing
619*22dc650dSSadaf Ebrahimi    cthing
620*22dc650dSSadaf Ebrahimi    dthing
621*22dc650dSSadaf Ebrahimi    ething
622*22dc650dSSadaf Ebrahimi\= Expect no match
623*22dc650dSSadaf Ebrahimi    fthing
624*22dc650dSSadaf Ebrahimi    [thing
625*22dc650dSSadaf Ebrahimi    \\thing
626*22dc650dSSadaf Ebrahimi
627*22dc650dSSadaf Ebrahimi/^[]cde]/
628*22dc650dSSadaf Ebrahimi    ]thing
629*22dc650dSSadaf Ebrahimi    cthing
630*22dc650dSSadaf Ebrahimi    dthing
631*22dc650dSSadaf Ebrahimi    ething
632*22dc650dSSadaf Ebrahimi\= Expect no match
633*22dc650dSSadaf Ebrahimi    athing
634*22dc650dSSadaf Ebrahimi    fthing
635*22dc650dSSadaf Ebrahimi
636*22dc650dSSadaf Ebrahimi/^[^ab\]cde]/
637*22dc650dSSadaf Ebrahimi    fthing
638*22dc650dSSadaf Ebrahimi    [thing
639*22dc650dSSadaf Ebrahimi    \\thing
640*22dc650dSSadaf Ebrahimi\= Expect no match
641*22dc650dSSadaf Ebrahimi    athing
642*22dc650dSSadaf Ebrahimi    bthing
643*22dc650dSSadaf Ebrahimi    ]thing
644*22dc650dSSadaf Ebrahimi    cthing
645*22dc650dSSadaf Ebrahimi    dthing
646*22dc650dSSadaf Ebrahimi    ething
647*22dc650dSSadaf Ebrahimi
648*22dc650dSSadaf Ebrahimi/^[^]cde]/
649*22dc650dSSadaf Ebrahimi    athing
650*22dc650dSSadaf Ebrahimi    fthing
651*22dc650dSSadaf Ebrahimi\= Expect no match
652*22dc650dSSadaf Ebrahimi    ]thing
653*22dc650dSSadaf Ebrahimi    cthing
654*22dc650dSSadaf Ebrahimi    dthing
655*22dc650dSSadaf Ebrahimi    ething
656*22dc650dSSadaf Ebrahimi
657*22dc650dSSadaf Ebrahimi/^\�/
658*22dc650dSSadaf Ebrahimi659*22dc650dSSadaf Ebrahimi
660*22dc650dSSadaf Ebrahimi/^�/
661*22dc650dSSadaf Ebrahimi662*22dc650dSSadaf Ebrahimi
663*22dc650dSSadaf Ebrahimi/^[0-9]+$/
664*22dc650dSSadaf Ebrahimi    0
665*22dc650dSSadaf Ebrahimi    1
666*22dc650dSSadaf Ebrahimi    2
667*22dc650dSSadaf Ebrahimi    3
668*22dc650dSSadaf Ebrahimi    4
669*22dc650dSSadaf Ebrahimi    5
670*22dc650dSSadaf Ebrahimi    6
671*22dc650dSSadaf Ebrahimi    7
672*22dc650dSSadaf Ebrahimi    8
673*22dc650dSSadaf Ebrahimi    9
674*22dc650dSSadaf Ebrahimi    10
675*22dc650dSSadaf Ebrahimi    100
676*22dc650dSSadaf Ebrahimi\= Expect no match
677*22dc650dSSadaf Ebrahimi    abc
678*22dc650dSSadaf Ebrahimi
679*22dc650dSSadaf Ebrahimi/^.*nter/
680*22dc650dSSadaf Ebrahimi    enter
681*22dc650dSSadaf Ebrahimi    inter
682*22dc650dSSadaf Ebrahimi    uponter
683*22dc650dSSadaf Ebrahimi
684*22dc650dSSadaf Ebrahimi/^xxx[0-9]+$/
685*22dc650dSSadaf Ebrahimi    xxx0
686*22dc650dSSadaf Ebrahimi    xxx1234
687*22dc650dSSadaf Ebrahimi\= Expect no match
688*22dc650dSSadaf Ebrahimi    xxx
689*22dc650dSSadaf Ebrahimi
690*22dc650dSSadaf Ebrahimi/^.+[0-9][0-9][0-9]$/
691*22dc650dSSadaf Ebrahimi    x123
692*22dc650dSSadaf Ebrahimi    xx123
693*22dc650dSSadaf Ebrahimi    123456
694*22dc650dSSadaf Ebrahimi    x1234
695*22dc650dSSadaf Ebrahimi\= Expect no match
696*22dc650dSSadaf Ebrahimi    123
697*22dc650dSSadaf Ebrahimi
698*22dc650dSSadaf Ebrahimi/^.+?[0-9][0-9][0-9]$/
699*22dc650dSSadaf Ebrahimi    x123
700*22dc650dSSadaf Ebrahimi    xx123
701*22dc650dSSadaf Ebrahimi    123456
702*22dc650dSSadaf Ebrahimi    x1234
703*22dc650dSSadaf Ebrahimi\= Expect no match
704*22dc650dSSadaf Ebrahimi    123
705*22dc650dSSadaf Ebrahimi
706*22dc650dSSadaf Ebrahimi/^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
707*22dc650dSSadaf Ebrahimi    abc!pqr=apquxz.ixr.zzz.ac.uk
708*22dc650dSSadaf Ebrahimi\= Expect no match
709*22dc650dSSadaf Ebrahimi    !pqr=apquxz.ixr.zzz.ac.uk
710*22dc650dSSadaf Ebrahimi    abc!=apquxz.ixr.zzz.ac.uk
711*22dc650dSSadaf Ebrahimi    abc!pqr=apquxz:ixr.zzz.ac.uk
712*22dc650dSSadaf Ebrahimi    abc!pqr=apquxz.ixr.zzz.ac.ukk
713*22dc650dSSadaf Ebrahimi
714*22dc650dSSadaf Ebrahimi/:/
715*22dc650dSSadaf Ebrahimi    Well, we need a colon: somewhere
716*22dc650dSSadaf Ebrahimi\= Expect no match
717*22dc650dSSadaf Ebrahimi    No match without a colon
718*22dc650dSSadaf Ebrahimi
719*22dc650dSSadaf Ebrahimi/([\da-f:]+)$/i
720*22dc650dSSadaf Ebrahimi    0abc
721*22dc650dSSadaf Ebrahimi    abc
722*22dc650dSSadaf Ebrahimi    fed
723*22dc650dSSadaf Ebrahimi    E
724*22dc650dSSadaf Ebrahimi    ::
725*22dc650dSSadaf Ebrahimi    5f03:12C0::932e
726*22dc650dSSadaf Ebrahimi    fed def
727*22dc650dSSadaf Ebrahimi    Any old stuff
728*22dc650dSSadaf Ebrahimi\= Expect no match
729*22dc650dSSadaf Ebrahimi    0zzz
730*22dc650dSSadaf Ebrahimi    gzzz
731*22dc650dSSadaf Ebrahimi    fed\x20
732*22dc650dSSadaf Ebrahimi    Any old rubbish
733*22dc650dSSadaf Ebrahimi
734*22dc650dSSadaf Ebrahimi/^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
735*22dc650dSSadaf Ebrahimi    .1.2.3
736*22dc650dSSadaf Ebrahimi    A.12.123.0
737*22dc650dSSadaf Ebrahimi\= Expect no match
738*22dc650dSSadaf Ebrahimi    .1.2.3333
739*22dc650dSSadaf Ebrahimi    1.2.3
740*22dc650dSSadaf Ebrahimi    1234.2.3
741*22dc650dSSadaf Ebrahimi
742*22dc650dSSadaf Ebrahimi/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
743*22dc650dSSadaf Ebrahimi    1 IN SOA non-sp1 non-sp2(
744*22dc650dSSadaf Ebrahimi    1    IN    SOA    non-sp1    non-sp2   (
745*22dc650dSSadaf Ebrahimi\= Expect no match
746*22dc650dSSadaf Ebrahimi    1IN SOA non-sp1 non-sp2(
747*22dc650dSSadaf Ebrahimi
748*22dc650dSSadaf Ebrahimi/^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
749*22dc650dSSadaf Ebrahimi    a.
750*22dc650dSSadaf Ebrahimi    Z.
751*22dc650dSSadaf Ebrahimi    2.
752*22dc650dSSadaf Ebrahimi    ab-c.pq-r.
753*22dc650dSSadaf Ebrahimi    sxk.zzz.ac.uk.
754*22dc650dSSadaf Ebrahimi    x-.y-.
755*22dc650dSSadaf Ebrahimi\= Expect no match
756*22dc650dSSadaf Ebrahimi    -abc.peq.
757*22dc650dSSadaf Ebrahimi
758*22dc650dSSadaf Ebrahimi/^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
759*22dc650dSSadaf Ebrahimi    *.a
760*22dc650dSSadaf Ebrahimi    *.b0-a
761*22dc650dSSadaf Ebrahimi    *.c3-b.c
762*22dc650dSSadaf Ebrahimi    *.c-a.b-c
763*22dc650dSSadaf Ebrahimi\= Expect no match
764*22dc650dSSadaf Ebrahimi    *.0
765*22dc650dSSadaf Ebrahimi    *.a-
766*22dc650dSSadaf Ebrahimi    *.a-b.c-
767*22dc650dSSadaf Ebrahimi    *.c-a.0-c
768*22dc650dSSadaf Ebrahimi
769*22dc650dSSadaf Ebrahimi/^(?=ab(de))(abd)(e)/
770*22dc650dSSadaf Ebrahimi    abde
771*22dc650dSSadaf Ebrahimi
772*22dc650dSSadaf Ebrahimi/^(?!(ab)de|x)(abd)(f)/
773*22dc650dSSadaf Ebrahimi    abdf
774*22dc650dSSadaf Ebrahimi
775*22dc650dSSadaf Ebrahimi/^(?=(ab(cd)))(ab)/
776*22dc650dSSadaf Ebrahimi    abcd
777*22dc650dSSadaf Ebrahimi
778*22dc650dSSadaf Ebrahimi/^[\da-f](\.[\da-f])*$/i
779*22dc650dSSadaf Ebrahimi    a.b.c.d
780*22dc650dSSadaf Ebrahimi    A.B.C.D
781*22dc650dSSadaf Ebrahimi    a.b.c.1.2.3.C
782*22dc650dSSadaf Ebrahimi
783*22dc650dSSadaf Ebrahimi/^\".*\"\s*(;.*)?$/
784*22dc650dSSadaf Ebrahimi    \"1234\"
785*22dc650dSSadaf Ebrahimi    \"abcd\" ;
786*22dc650dSSadaf Ebrahimi    \"\" ; rhubarb
787*22dc650dSSadaf Ebrahimi\= Expect no match
788*22dc650dSSadaf Ebrahimi    \"1234\" : things
789*22dc650dSSadaf Ebrahimi
790*22dc650dSSadaf Ebrahimi/^$/
791*22dc650dSSadaf Ebrahimi    \
792*22dc650dSSadaf Ebrahimi
793*22dc650dSSadaf Ebrahimi/   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/x
794*22dc650dSSadaf Ebrahimi    ab c
795*22dc650dSSadaf Ebrahimi\= Expect no match
796*22dc650dSSadaf Ebrahimi    abc
797*22dc650dSSadaf Ebrahimi    ab cde
798*22dc650dSSadaf Ebrahimi
799*22dc650dSSadaf Ebrahimi/(?x)   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/
800*22dc650dSSadaf Ebrahimi    ab c
801*22dc650dSSadaf Ebrahimi\= Expect no match
802*22dc650dSSadaf Ebrahimi    abc
803*22dc650dSSadaf Ebrahimi    ab cde
804*22dc650dSSadaf Ebrahimi
805*22dc650dSSadaf Ebrahimi/^   a\ b[c ]d       $/x
806*22dc650dSSadaf Ebrahimi    a bcd
807*22dc650dSSadaf Ebrahimi    a b d
808*22dc650dSSadaf Ebrahimi\= Expect no match
809*22dc650dSSadaf Ebrahimi    abcd
810*22dc650dSSadaf Ebrahimi    ab d
811*22dc650dSSadaf Ebrahimi
812*22dc650dSSadaf Ebrahimi/^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
813*22dc650dSSadaf Ebrahimi    abcdefhijklm
814*22dc650dSSadaf Ebrahimi
815*22dc650dSSadaf Ebrahimi/^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
816*22dc650dSSadaf Ebrahimi    abcdefhijklm
817*22dc650dSSadaf Ebrahimi
818*22dc650dSSadaf Ebrahimi/^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
819*22dc650dSSadaf Ebrahimi    a+ Z0+\x08\n\x1d\x12
820*22dc650dSSadaf Ebrahimi
821*22dc650dSSadaf Ebrahimi/^[.^$|()*+?{,}]+/
822*22dc650dSSadaf Ebrahimi    .^\$(*+)|{?,?}
823*22dc650dSSadaf Ebrahimi
824*22dc650dSSadaf Ebrahimi/^a*\w/
825*22dc650dSSadaf Ebrahimi    z
826*22dc650dSSadaf Ebrahimi    az
827*22dc650dSSadaf Ebrahimi    aaaz
828*22dc650dSSadaf Ebrahimi    a
829*22dc650dSSadaf Ebrahimi    aa
830*22dc650dSSadaf Ebrahimi    aaaa
831*22dc650dSSadaf Ebrahimi    a+
832*22dc650dSSadaf Ebrahimi    aa+
833*22dc650dSSadaf Ebrahimi
834*22dc650dSSadaf Ebrahimi/^a*?\w/
835*22dc650dSSadaf Ebrahimi    z
836*22dc650dSSadaf Ebrahimi    az
837*22dc650dSSadaf Ebrahimi    aaaz
838*22dc650dSSadaf Ebrahimi    a
839*22dc650dSSadaf Ebrahimi    aa
840*22dc650dSSadaf Ebrahimi    aaaa
841*22dc650dSSadaf Ebrahimi    a+
842*22dc650dSSadaf Ebrahimi    aa+
843*22dc650dSSadaf Ebrahimi
844*22dc650dSSadaf Ebrahimi/^a+\w/
845*22dc650dSSadaf Ebrahimi    az
846*22dc650dSSadaf Ebrahimi    aaaz
847*22dc650dSSadaf Ebrahimi    aa
848*22dc650dSSadaf Ebrahimi    aaaa
849*22dc650dSSadaf Ebrahimi    aa+
850*22dc650dSSadaf Ebrahimi
851*22dc650dSSadaf Ebrahimi/^a+?\w/
852*22dc650dSSadaf Ebrahimi    az
853*22dc650dSSadaf Ebrahimi    aaaz
854*22dc650dSSadaf Ebrahimi    aa
855*22dc650dSSadaf Ebrahimi    aaaa
856*22dc650dSSadaf Ebrahimi    aa+
857*22dc650dSSadaf Ebrahimi
858*22dc650dSSadaf Ebrahimi/^\d{8}\w{2,}/
859*22dc650dSSadaf Ebrahimi    1234567890
860*22dc650dSSadaf Ebrahimi    12345678ab
861*22dc650dSSadaf Ebrahimi    12345678__
862*22dc650dSSadaf Ebrahimi\= Expect no match
863*22dc650dSSadaf Ebrahimi    1234567
864*22dc650dSSadaf Ebrahimi
865*22dc650dSSadaf Ebrahimi/^[aeiou\d]{4,5}$/
866*22dc650dSSadaf Ebrahimi    uoie
867*22dc650dSSadaf Ebrahimi    1234
868*22dc650dSSadaf Ebrahimi    12345
869*22dc650dSSadaf Ebrahimi    aaaaa
870*22dc650dSSadaf Ebrahimi\= Expect no match
871*22dc650dSSadaf Ebrahimi    123456
872*22dc650dSSadaf Ebrahimi
873*22dc650dSSadaf Ebrahimi/^[aeiou\d]{4,5}?/
874*22dc650dSSadaf Ebrahimi    uoie
875*22dc650dSSadaf Ebrahimi    1234
876*22dc650dSSadaf Ebrahimi    12345
877*22dc650dSSadaf Ebrahimi    aaaaa
878*22dc650dSSadaf Ebrahimi    123456
879*22dc650dSSadaf Ebrahimi
880*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]/
881*22dc650dSSadaf Ebrahimi    From abcd  Mon Sep 01 12:33:02 1997
882*22dc650dSSadaf Ebrahimi
883*22dc650dSSadaf Ebrahimi/^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
884*22dc650dSSadaf Ebrahimi    From abcd  Mon Sep 01 12:33:02 1997
885*22dc650dSSadaf Ebrahimi    From abcd  Mon Sep  1 12:33:02 1997
886*22dc650dSSadaf Ebrahimi\= Expect no match
887*22dc650dSSadaf Ebrahimi    From abcd  Sep 01 12:33:02 1997
888*22dc650dSSadaf Ebrahimi
889*22dc650dSSadaf Ebrahimi/^12.34/s
890*22dc650dSSadaf Ebrahimi    12\n34
891*22dc650dSSadaf Ebrahimi    12\r34
892*22dc650dSSadaf Ebrahimi
893*22dc650dSSadaf Ebrahimi/\w+(?=\t)/
894*22dc650dSSadaf Ebrahimi    the quick brown\t fox
895*22dc650dSSadaf Ebrahimi
896*22dc650dSSadaf Ebrahimi/foo(?!bar)(.*)/
897*22dc650dSSadaf Ebrahimi    foobar is foolish see?
898*22dc650dSSadaf Ebrahimi
899*22dc650dSSadaf Ebrahimi/(?:(?!foo)...|^.{0,2})bar(.*)/
900*22dc650dSSadaf Ebrahimi    foobar crowbar etc
901*22dc650dSSadaf Ebrahimi    barrel
902*22dc650dSSadaf Ebrahimi    2barrel
903*22dc650dSSadaf Ebrahimi    A barrel
904*22dc650dSSadaf Ebrahimi
905*22dc650dSSadaf Ebrahimi/^(\D*)(?=\d)(?!123)/
906*22dc650dSSadaf Ebrahimi    abc456
907*22dc650dSSadaf Ebrahimi\= Expect no match
908*22dc650dSSadaf Ebrahimi    abc123
909*22dc650dSSadaf Ebrahimi
910*22dc650dSSadaf Ebrahimi/^1234(?# test newlines
911*22dc650dSSadaf Ebrahimi  inside)/
912*22dc650dSSadaf Ebrahimi    1234
913*22dc650dSSadaf Ebrahimi
914*22dc650dSSadaf Ebrahimi/^1234 #comment in extended re
915*22dc650dSSadaf Ebrahimi  /x
916*22dc650dSSadaf Ebrahimi    1234
917*22dc650dSSadaf Ebrahimi
918*22dc650dSSadaf Ebrahimi/#rhubarb
919*22dc650dSSadaf Ebrahimi  abcd/x
920*22dc650dSSadaf Ebrahimi    abcd
921*22dc650dSSadaf Ebrahimi
922*22dc650dSSadaf Ebrahimi/^abcd#rhubarb/x
923*22dc650dSSadaf Ebrahimi    abcd
924*22dc650dSSadaf Ebrahimi
925*22dc650dSSadaf Ebrahimi/(?!^)abc/
926*22dc650dSSadaf Ebrahimi    the abc
927*22dc650dSSadaf Ebrahimi\= Expect no match
928*22dc650dSSadaf Ebrahimi    abc
929*22dc650dSSadaf Ebrahimi
930*22dc650dSSadaf Ebrahimi/(?=^)abc/
931*22dc650dSSadaf Ebrahimi    abc
932*22dc650dSSadaf Ebrahimi\= Expect no match
933*22dc650dSSadaf Ebrahimi    the abc
934*22dc650dSSadaf Ebrahimi
935*22dc650dSSadaf Ebrahimi/^[ab]{1,3}(ab*|b)/no_auto_possess
936*22dc650dSSadaf Ebrahimi    aabbbbb
937*22dc650dSSadaf Ebrahimi
938*22dc650dSSadaf Ebrahimi/^[ab]{1,3}?(ab*|b)/no_auto_possess
939*22dc650dSSadaf Ebrahimi    aabbbbb
940*22dc650dSSadaf Ebrahimi
941*22dc650dSSadaf Ebrahimi/^[ab]{1,3}?(ab*?|b)/no_auto_possess
942*22dc650dSSadaf Ebrahimi    aabbbbb
943*22dc650dSSadaf Ebrahimi
944*22dc650dSSadaf Ebrahimi/^[ab]{1,3}(ab*?|b)/no_auto_possess
945*22dc650dSSadaf Ebrahimi    aabbbbb
946*22dc650dSSadaf Ebrahimi
947*22dc650dSSadaf Ebrahimi/  (?: [\040\t] |  \(
948*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
949*22dc650dSSadaf Ebrahimi\)  )*                          # optional leading comment
950*22dc650dSSadaf Ebrahimi(?:    (?:
951*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
952*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
953*22dc650dSSadaf Ebrahimi|
954*22dc650dSSadaf Ebrahimi" (?:                      # opening quote...
955*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
956*22dc650dSSadaf Ebrahimi|                     #    or
957*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff]           #   Escaped something (something != CR)
958*22dc650dSSadaf Ebrahimi)* "  # closing quote
959*22dc650dSSadaf Ebrahimi)                    # initial word
960*22dc650dSSadaf Ebrahimi(?:  (?: [\040\t] |  \(
961*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
962*22dc650dSSadaf Ebrahimi\)  )*  \.  (?: [\040\t] |  \(
963*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
964*22dc650dSSadaf Ebrahimi\)  )*   (?:
965*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
966*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
967*22dc650dSSadaf Ebrahimi|
968*22dc650dSSadaf Ebrahimi" (?:                      # opening quote...
969*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
970*22dc650dSSadaf Ebrahimi|                     #    or
971*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff]           #   Escaped something (something != CR)
972*22dc650dSSadaf Ebrahimi)* "  # closing quote
973*22dc650dSSadaf Ebrahimi)  )* # further okay, if led by a period
974*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
975*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
976*22dc650dSSadaf Ebrahimi\)  )*  @  (?: [\040\t] |  \(
977*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
978*22dc650dSSadaf Ebrahimi\)  )*    (?:
979*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
980*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
981*22dc650dSSadaf Ebrahimi|   \[                         # [
982*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
983*22dc650dSSadaf Ebrahimi\]                        #           ]
984*22dc650dSSadaf Ebrahimi)                           # initial subdomain
985*22dc650dSSadaf Ebrahimi(?:                                  #
986*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
987*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
988*22dc650dSSadaf Ebrahimi\)  )*  \.                        # if led by a period...
989*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
990*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
991*22dc650dSSadaf Ebrahimi\)  )*   (?:
992*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
993*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
994*22dc650dSSadaf Ebrahimi|   \[                         # [
995*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
996*22dc650dSSadaf Ebrahimi\]                        #           ]
997*22dc650dSSadaf Ebrahimi)                     #   ...further okay
998*22dc650dSSadaf Ebrahimi)*
999*22dc650dSSadaf Ebrahimi# address
1000*22dc650dSSadaf Ebrahimi|                     #  or
1001*22dc650dSSadaf Ebrahimi(?:
1002*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1003*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1004*22dc650dSSadaf Ebrahimi|
1005*22dc650dSSadaf Ebrahimi" (?:                      # opening quote...
1006*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
1007*22dc650dSSadaf Ebrahimi|                     #    or
1008*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff]           #   Escaped something (something != CR)
1009*22dc650dSSadaf Ebrahimi)* "  # closing quote
1010*22dc650dSSadaf Ebrahimi)             # one word, optionally followed by....
1011*22dc650dSSadaf Ebrahimi(?:
1012*22dc650dSSadaf Ebrahimi[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
1013*22dc650dSSadaf Ebrahimi\(
1014*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1015*22dc650dSSadaf Ebrahimi\)       |  # comments, or...
1016*22dc650dSSadaf Ebrahimi
1017*22dc650dSSadaf Ebrahimi" (?:                      # opening quote...
1018*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
1019*22dc650dSSadaf Ebrahimi|                     #    or
1020*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff]           #   Escaped something (something != CR)
1021*22dc650dSSadaf Ebrahimi)* "  # closing quote
1022*22dc650dSSadaf Ebrahimi# quoted strings
1023*22dc650dSSadaf Ebrahimi)*
1024*22dc650dSSadaf Ebrahimi<  (?: [\040\t] |  \(
1025*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1026*22dc650dSSadaf Ebrahimi\)  )*                     # leading <
1027*22dc650dSSadaf Ebrahimi(?:  @  (?: [\040\t] |  \(
1028*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1029*22dc650dSSadaf Ebrahimi\)  )*    (?:
1030*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1031*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1032*22dc650dSSadaf Ebrahimi|   \[                         # [
1033*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
1034*22dc650dSSadaf Ebrahimi\]                        #           ]
1035*22dc650dSSadaf Ebrahimi)                           # initial subdomain
1036*22dc650dSSadaf Ebrahimi(?:                                  #
1037*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1038*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1039*22dc650dSSadaf Ebrahimi\)  )*  \.                        # if led by a period...
1040*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1041*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1042*22dc650dSSadaf Ebrahimi\)  )*   (?:
1043*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1044*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1045*22dc650dSSadaf Ebrahimi|   \[                         # [
1046*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
1047*22dc650dSSadaf Ebrahimi\]                        #           ]
1048*22dc650dSSadaf Ebrahimi)                     #   ...further okay
1049*22dc650dSSadaf Ebrahimi)*
1050*22dc650dSSadaf Ebrahimi
1051*22dc650dSSadaf Ebrahimi(?:  (?: [\040\t] |  \(
1052*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1053*22dc650dSSadaf Ebrahimi\)  )*  ,  (?: [\040\t] |  \(
1054*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1055*22dc650dSSadaf Ebrahimi\)  )*  @  (?: [\040\t] |  \(
1056*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1057*22dc650dSSadaf Ebrahimi\)  )*    (?:
1058*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1059*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1060*22dc650dSSadaf Ebrahimi|   \[                         # [
1061*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
1062*22dc650dSSadaf Ebrahimi\]                        #           ]
1063*22dc650dSSadaf Ebrahimi)                           # initial subdomain
1064*22dc650dSSadaf Ebrahimi(?:                                  #
1065*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1066*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1067*22dc650dSSadaf Ebrahimi\)  )*  \.                        # if led by a period...
1068*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1069*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1070*22dc650dSSadaf Ebrahimi\)  )*   (?:
1071*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1072*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1073*22dc650dSSadaf Ebrahimi|   \[                         # [
1074*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
1075*22dc650dSSadaf Ebrahimi\]                        #           ]
1076*22dc650dSSadaf Ebrahimi)                     #   ...further okay
1077*22dc650dSSadaf Ebrahimi)*
1078*22dc650dSSadaf Ebrahimi)* # further okay, if led by comma
1079*22dc650dSSadaf Ebrahimi:                                # closing colon
1080*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1081*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1082*22dc650dSSadaf Ebrahimi\)  )*  )? #       optional route
1083*22dc650dSSadaf Ebrahimi(?:
1084*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1085*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1086*22dc650dSSadaf Ebrahimi|
1087*22dc650dSSadaf Ebrahimi" (?:                      # opening quote...
1088*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
1089*22dc650dSSadaf Ebrahimi|                     #    or
1090*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff]           #   Escaped something (something != CR)
1091*22dc650dSSadaf Ebrahimi)* "  # closing quote
1092*22dc650dSSadaf Ebrahimi)                    # initial word
1093*22dc650dSSadaf Ebrahimi(?:  (?: [\040\t] |  \(
1094*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1095*22dc650dSSadaf Ebrahimi\)  )*  \.  (?: [\040\t] |  \(
1096*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1097*22dc650dSSadaf Ebrahimi\)  )*   (?:
1098*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1099*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1100*22dc650dSSadaf Ebrahimi|
1101*22dc650dSSadaf Ebrahimi" (?:                      # opening quote...
1102*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
1103*22dc650dSSadaf Ebrahimi|                     #    or
1104*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff]           #   Escaped something (something != CR)
1105*22dc650dSSadaf Ebrahimi)* "  # closing quote
1106*22dc650dSSadaf Ebrahimi)  )* # further okay, if led by a period
1107*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1108*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1109*22dc650dSSadaf Ebrahimi\)  )*  @  (?: [\040\t] |  \(
1110*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1111*22dc650dSSadaf Ebrahimi\)  )*    (?:
1112*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1113*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1114*22dc650dSSadaf Ebrahimi|   \[                         # [
1115*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
1116*22dc650dSSadaf Ebrahimi\]                        #           ]
1117*22dc650dSSadaf Ebrahimi)                           # initial subdomain
1118*22dc650dSSadaf Ebrahimi(?:                                  #
1119*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1120*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1121*22dc650dSSadaf Ebrahimi\)  )*  \.                        # if led by a period...
1122*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1123*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1124*22dc650dSSadaf Ebrahimi\)  )*   (?:
1125*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1126*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1127*22dc650dSSadaf Ebrahimi|   \[                         # [
1128*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
1129*22dc650dSSadaf Ebrahimi\]                        #           ]
1130*22dc650dSSadaf Ebrahimi)                     #   ...further okay
1131*22dc650dSSadaf Ebrahimi)*
1132*22dc650dSSadaf Ebrahimi#       address spec
1133*22dc650dSSadaf Ebrahimi(?: [\040\t] |  \(
1134*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1135*22dc650dSSadaf Ebrahimi\)  )*  > #                  trailing >
1136*22dc650dSSadaf Ebrahimi# name and address
1137*22dc650dSSadaf Ebrahimi)  (?: [\040\t] |  \(
1138*22dc650dSSadaf Ebrahimi(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
1139*22dc650dSSadaf Ebrahimi\)  )*                       # optional trailing comment
1140*22dc650dSSadaf Ebrahimi/x
1141*22dc650dSSadaf Ebrahimi    Alan Other <user\@dom.ain>
1142*22dc650dSSadaf Ebrahimi    <user\@dom.ain>
1143*22dc650dSSadaf Ebrahimi    user\@dom.ain
1144*22dc650dSSadaf Ebrahimi    \"A. Other\" <user.1234\@dom.ain> (a comment)
1145*22dc650dSSadaf Ebrahimi    A. Other <user.1234\@dom.ain> (a comment)
1146*22dc650dSSadaf Ebrahimi    \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
1147*22dc650dSSadaf Ebrahimi    A missing angle <user\@some.where
1148*22dc650dSSadaf Ebrahimi\= Expect no match
1149*22dc650dSSadaf Ebrahimi    The quick brown fox
1150*22dc650dSSadaf Ebrahimi
1151*22dc650dSSadaf Ebrahimi/[\040\t]*                    # Nab whitespace.
1152*22dc650dSSadaf Ebrahimi(?:
1153*22dc650dSSadaf Ebrahimi\(                              #  (
1154*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1155*22dc650dSSadaf Ebrahimi(?:                                 #       (
1156*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1157*22dc650dSSadaf Ebrahimi\(                            #  (
1158*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1159*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1160*22dc650dSSadaf Ebrahimi\)                           #                       )
1161*22dc650dSSadaf Ebrahimi)    #         special
1162*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1163*22dc650dSSadaf Ebrahimi)*                                  #            )*
1164*22dc650dSSadaf Ebrahimi\)                             #                )
1165*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1166*22dc650dSSadaf Ebrahimi# optional leading comment
1167*22dc650dSSadaf Ebrahimi(?:
1168*22dc650dSSadaf Ebrahimi(?:
1169*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1170*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1171*22dc650dSSadaf Ebrahimi# Atom
1172*22dc650dSSadaf Ebrahimi|                       #  or
1173*22dc650dSSadaf Ebrahimi"                                     # "
1174*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] *                            #   normal
1175*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
1176*22dc650dSSadaf Ebrahimi"                                     #        "
1177*22dc650dSSadaf Ebrahimi# Quoted string
1178*22dc650dSSadaf Ebrahimi)
1179*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1180*22dc650dSSadaf Ebrahimi(?:
1181*22dc650dSSadaf Ebrahimi\(                              #  (
1182*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1183*22dc650dSSadaf Ebrahimi(?:                                 #       (
1184*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1185*22dc650dSSadaf Ebrahimi\(                            #  (
1186*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1187*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1188*22dc650dSSadaf Ebrahimi\)                           #                       )
1189*22dc650dSSadaf Ebrahimi)    #         special
1190*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1191*22dc650dSSadaf Ebrahimi)*                                  #            )*
1192*22dc650dSSadaf Ebrahimi\)                             #                )
1193*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1194*22dc650dSSadaf Ebrahimi(?:
1195*22dc650dSSadaf Ebrahimi\.
1196*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1197*22dc650dSSadaf Ebrahimi(?:
1198*22dc650dSSadaf Ebrahimi\(                              #  (
1199*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1200*22dc650dSSadaf Ebrahimi(?:                                 #       (
1201*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1202*22dc650dSSadaf Ebrahimi\(                            #  (
1203*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1204*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1205*22dc650dSSadaf Ebrahimi\)                           #                       )
1206*22dc650dSSadaf Ebrahimi)    #         special
1207*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1208*22dc650dSSadaf Ebrahimi)*                                  #            )*
1209*22dc650dSSadaf Ebrahimi\)                             #                )
1210*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1211*22dc650dSSadaf Ebrahimi(?:
1212*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1213*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1214*22dc650dSSadaf Ebrahimi# Atom
1215*22dc650dSSadaf Ebrahimi|                       #  or
1216*22dc650dSSadaf Ebrahimi"                                     # "
1217*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] *                            #   normal
1218*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
1219*22dc650dSSadaf Ebrahimi"                                     #        "
1220*22dc650dSSadaf Ebrahimi# Quoted string
1221*22dc650dSSadaf Ebrahimi)
1222*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1223*22dc650dSSadaf Ebrahimi(?:
1224*22dc650dSSadaf Ebrahimi\(                              #  (
1225*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1226*22dc650dSSadaf Ebrahimi(?:                                 #       (
1227*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1228*22dc650dSSadaf Ebrahimi\(                            #  (
1229*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1230*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1231*22dc650dSSadaf Ebrahimi\)                           #                       )
1232*22dc650dSSadaf Ebrahimi)    #         special
1233*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1234*22dc650dSSadaf Ebrahimi)*                                  #            )*
1235*22dc650dSSadaf Ebrahimi\)                             #                )
1236*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1237*22dc650dSSadaf Ebrahimi# additional words
1238*22dc650dSSadaf Ebrahimi)*
1239*22dc650dSSadaf Ebrahimi@
1240*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1241*22dc650dSSadaf Ebrahimi(?:
1242*22dc650dSSadaf Ebrahimi\(                              #  (
1243*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1244*22dc650dSSadaf Ebrahimi(?:                                 #       (
1245*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1246*22dc650dSSadaf Ebrahimi\(                            #  (
1247*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1248*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1249*22dc650dSSadaf Ebrahimi\)                           #                       )
1250*22dc650dSSadaf Ebrahimi)    #         special
1251*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1252*22dc650dSSadaf Ebrahimi)*                                  #            )*
1253*22dc650dSSadaf Ebrahimi\)                             #                )
1254*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1255*22dc650dSSadaf Ebrahimi(?:
1256*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1257*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1258*22dc650dSSadaf Ebrahimi|
1259*22dc650dSSadaf Ebrahimi\[                            # [
1260*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
1261*22dc650dSSadaf Ebrahimi\]                           #           ]
1262*22dc650dSSadaf Ebrahimi)
1263*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1264*22dc650dSSadaf Ebrahimi(?:
1265*22dc650dSSadaf Ebrahimi\(                              #  (
1266*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1267*22dc650dSSadaf Ebrahimi(?:                                 #       (
1268*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1269*22dc650dSSadaf Ebrahimi\(                            #  (
1270*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1271*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1272*22dc650dSSadaf Ebrahimi\)                           #                       )
1273*22dc650dSSadaf Ebrahimi)    #         special
1274*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1275*22dc650dSSadaf Ebrahimi)*                                  #            )*
1276*22dc650dSSadaf Ebrahimi\)                             #                )
1277*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1278*22dc650dSSadaf Ebrahimi# optional trailing comments
1279*22dc650dSSadaf Ebrahimi(?:
1280*22dc650dSSadaf Ebrahimi\.
1281*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1282*22dc650dSSadaf Ebrahimi(?:
1283*22dc650dSSadaf Ebrahimi\(                              #  (
1284*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1285*22dc650dSSadaf Ebrahimi(?:                                 #       (
1286*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1287*22dc650dSSadaf Ebrahimi\(                            #  (
1288*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1289*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1290*22dc650dSSadaf Ebrahimi\)                           #                       )
1291*22dc650dSSadaf Ebrahimi)    #         special
1292*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1293*22dc650dSSadaf Ebrahimi)*                                  #            )*
1294*22dc650dSSadaf Ebrahimi\)                             #                )
1295*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1296*22dc650dSSadaf Ebrahimi(?:
1297*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1298*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1299*22dc650dSSadaf Ebrahimi|
1300*22dc650dSSadaf Ebrahimi\[                            # [
1301*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
1302*22dc650dSSadaf Ebrahimi\]                           #           ]
1303*22dc650dSSadaf Ebrahimi)
1304*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1305*22dc650dSSadaf Ebrahimi(?:
1306*22dc650dSSadaf Ebrahimi\(                              #  (
1307*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1308*22dc650dSSadaf Ebrahimi(?:                                 #       (
1309*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1310*22dc650dSSadaf Ebrahimi\(                            #  (
1311*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1312*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1313*22dc650dSSadaf Ebrahimi\)                           #                       )
1314*22dc650dSSadaf Ebrahimi)    #         special
1315*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1316*22dc650dSSadaf Ebrahimi)*                                  #            )*
1317*22dc650dSSadaf Ebrahimi\)                             #                )
1318*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1319*22dc650dSSadaf Ebrahimi# optional trailing comments
1320*22dc650dSSadaf Ebrahimi)*
1321*22dc650dSSadaf Ebrahimi# address
1322*22dc650dSSadaf Ebrahimi|                             #  or
1323*22dc650dSSadaf Ebrahimi(?:
1324*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1325*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1326*22dc650dSSadaf Ebrahimi# Atom
1327*22dc650dSSadaf Ebrahimi|                       #  or
1328*22dc650dSSadaf Ebrahimi"                                     # "
1329*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] *                            #   normal
1330*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
1331*22dc650dSSadaf Ebrahimi"                                     #        "
1332*22dc650dSSadaf Ebrahimi# Quoted string
1333*22dc650dSSadaf Ebrahimi)
1334*22dc650dSSadaf Ebrahimi# leading word
1335*22dc650dSSadaf Ebrahimi[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *               # "normal" atoms and or spaces
1336*22dc650dSSadaf Ebrahimi(?:
1337*22dc650dSSadaf Ebrahimi(?:
1338*22dc650dSSadaf Ebrahimi\(                              #  (
1339*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1340*22dc650dSSadaf Ebrahimi(?:                                 #       (
1341*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1342*22dc650dSSadaf Ebrahimi\(                            #  (
1343*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1344*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1345*22dc650dSSadaf Ebrahimi\)                           #                       )
1346*22dc650dSSadaf Ebrahimi)    #         special
1347*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1348*22dc650dSSadaf Ebrahimi)*                                  #            )*
1349*22dc650dSSadaf Ebrahimi\)                             #                )
1350*22dc650dSSadaf Ebrahimi|
1351*22dc650dSSadaf Ebrahimi"                                     # "
1352*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] *                            #   normal
1353*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
1354*22dc650dSSadaf Ebrahimi"                                     #        "
1355*22dc650dSSadaf Ebrahimi) # "special" comment or quoted string
1356*22dc650dSSadaf Ebrahimi[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *            #  more "normal"
1357*22dc650dSSadaf Ebrahimi)*
1358*22dc650dSSadaf Ebrahimi<
1359*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1360*22dc650dSSadaf Ebrahimi(?:
1361*22dc650dSSadaf Ebrahimi\(                              #  (
1362*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1363*22dc650dSSadaf Ebrahimi(?:                                 #       (
1364*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1365*22dc650dSSadaf Ebrahimi\(                            #  (
1366*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1367*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1368*22dc650dSSadaf Ebrahimi\)                           #                       )
1369*22dc650dSSadaf Ebrahimi)    #         special
1370*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1371*22dc650dSSadaf Ebrahimi)*                                  #            )*
1372*22dc650dSSadaf Ebrahimi\)                             #                )
1373*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1374*22dc650dSSadaf Ebrahimi# <
1375*22dc650dSSadaf Ebrahimi(?:
1376*22dc650dSSadaf Ebrahimi@
1377*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1378*22dc650dSSadaf Ebrahimi(?:
1379*22dc650dSSadaf Ebrahimi\(                              #  (
1380*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1381*22dc650dSSadaf Ebrahimi(?:                                 #       (
1382*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1383*22dc650dSSadaf Ebrahimi\(                            #  (
1384*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1385*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1386*22dc650dSSadaf Ebrahimi\)                           #                       )
1387*22dc650dSSadaf Ebrahimi)    #         special
1388*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1389*22dc650dSSadaf Ebrahimi)*                                  #            )*
1390*22dc650dSSadaf Ebrahimi\)                             #                )
1391*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1392*22dc650dSSadaf Ebrahimi(?:
1393*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1394*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1395*22dc650dSSadaf Ebrahimi|
1396*22dc650dSSadaf Ebrahimi\[                            # [
1397*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
1398*22dc650dSSadaf Ebrahimi\]                           #           ]
1399*22dc650dSSadaf Ebrahimi)
1400*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1401*22dc650dSSadaf Ebrahimi(?:
1402*22dc650dSSadaf Ebrahimi\(                              #  (
1403*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1404*22dc650dSSadaf Ebrahimi(?:                                 #       (
1405*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1406*22dc650dSSadaf Ebrahimi\(                            #  (
1407*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1408*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1409*22dc650dSSadaf Ebrahimi\)                           #                       )
1410*22dc650dSSadaf Ebrahimi)    #         special
1411*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1412*22dc650dSSadaf Ebrahimi)*                                  #            )*
1413*22dc650dSSadaf Ebrahimi\)                             #                )
1414*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1415*22dc650dSSadaf Ebrahimi# optional trailing comments
1416*22dc650dSSadaf Ebrahimi(?:
1417*22dc650dSSadaf Ebrahimi\.
1418*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1419*22dc650dSSadaf Ebrahimi(?:
1420*22dc650dSSadaf Ebrahimi\(                              #  (
1421*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1422*22dc650dSSadaf Ebrahimi(?:                                 #       (
1423*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1424*22dc650dSSadaf Ebrahimi\(                            #  (
1425*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1426*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1427*22dc650dSSadaf Ebrahimi\)                           #                       )
1428*22dc650dSSadaf Ebrahimi)    #         special
1429*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1430*22dc650dSSadaf Ebrahimi)*                                  #            )*
1431*22dc650dSSadaf Ebrahimi\)                             #                )
1432*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1433*22dc650dSSadaf Ebrahimi(?:
1434*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1435*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1436*22dc650dSSadaf Ebrahimi|
1437*22dc650dSSadaf Ebrahimi\[                            # [
1438*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
1439*22dc650dSSadaf Ebrahimi\]                           #           ]
1440*22dc650dSSadaf Ebrahimi)
1441*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1442*22dc650dSSadaf Ebrahimi(?:
1443*22dc650dSSadaf Ebrahimi\(                              #  (
1444*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1445*22dc650dSSadaf Ebrahimi(?:                                 #       (
1446*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1447*22dc650dSSadaf Ebrahimi\(                            #  (
1448*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1449*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1450*22dc650dSSadaf Ebrahimi\)                           #                       )
1451*22dc650dSSadaf Ebrahimi)    #         special
1452*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1453*22dc650dSSadaf Ebrahimi)*                                  #            )*
1454*22dc650dSSadaf Ebrahimi\)                             #                )
1455*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1456*22dc650dSSadaf Ebrahimi# optional trailing comments
1457*22dc650dSSadaf Ebrahimi)*
1458*22dc650dSSadaf Ebrahimi(?: ,
1459*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1460*22dc650dSSadaf Ebrahimi(?:
1461*22dc650dSSadaf Ebrahimi\(                              #  (
1462*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1463*22dc650dSSadaf Ebrahimi(?:                                 #       (
1464*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1465*22dc650dSSadaf Ebrahimi\(                            #  (
1466*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1467*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1468*22dc650dSSadaf Ebrahimi\)                           #                       )
1469*22dc650dSSadaf Ebrahimi)    #         special
1470*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1471*22dc650dSSadaf Ebrahimi)*                                  #            )*
1472*22dc650dSSadaf Ebrahimi\)                             #                )
1473*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1474*22dc650dSSadaf Ebrahimi@
1475*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1476*22dc650dSSadaf Ebrahimi(?:
1477*22dc650dSSadaf Ebrahimi\(                              #  (
1478*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1479*22dc650dSSadaf Ebrahimi(?:                                 #       (
1480*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1481*22dc650dSSadaf Ebrahimi\(                            #  (
1482*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1483*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1484*22dc650dSSadaf Ebrahimi\)                           #                       )
1485*22dc650dSSadaf Ebrahimi)    #         special
1486*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1487*22dc650dSSadaf Ebrahimi)*                                  #            )*
1488*22dc650dSSadaf Ebrahimi\)                             #                )
1489*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1490*22dc650dSSadaf Ebrahimi(?:
1491*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1492*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1493*22dc650dSSadaf Ebrahimi|
1494*22dc650dSSadaf Ebrahimi\[                            # [
1495*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
1496*22dc650dSSadaf Ebrahimi\]                           #           ]
1497*22dc650dSSadaf Ebrahimi)
1498*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1499*22dc650dSSadaf Ebrahimi(?:
1500*22dc650dSSadaf Ebrahimi\(                              #  (
1501*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1502*22dc650dSSadaf Ebrahimi(?:                                 #       (
1503*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1504*22dc650dSSadaf Ebrahimi\(                            #  (
1505*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1506*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1507*22dc650dSSadaf Ebrahimi\)                           #                       )
1508*22dc650dSSadaf Ebrahimi)    #         special
1509*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1510*22dc650dSSadaf Ebrahimi)*                                  #            )*
1511*22dc650dSSadaf Ebrahimi\)                             #                )
1512*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1513*22dc650dSSadaf Ebrahimi# optional trailing comments
1514*22dc650dSSadaf Ebrahimi(?:
1515*22dc650dSSadaf Ebrahimi\.
1516*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1517*22dc650dSSadaf Ebrahimi(?:
1518*22dc650dSSadaf Ebrahimi\(                              #  (
1519*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1520*22dc650dSSadaf Ebrahimi(?:                                 #       (
1521*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1522*22dc650dSSadaf Ebrahimi\(                            #  (
1523*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1524*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1525*22dc650dSSadaf Ebrahimi\)                           #                       )
1526*22dc650dSSadaf Ebrahimi)    #         special
1527*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1528*22dc650dSSadaf Ebrahimi)*                                  #            )*
1529*22dc650dSSadaf Ebrahimi\)                             #                )
1530*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1531*22dc650dSSadaf Ebrahimi(?:
1532*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1533*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1534*22dc650dSSadaf Ebrahimi|
1535*22dc650dSSadaf Ebrahimi\[                            # [
1536*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
1537*22dc650dSSadaf Ebrahimi\]                           #           ]
1538*22dc650dSSadaf Ebrahimi)
1539*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1540*22dc650dSSadaf Ebrahimi(?:
1541*22dc650dSSadaf Ebrahimi\(                              #  (
1542*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1543*22dc650dSSadaf Ebrahimi(?:                                 #       (
1544*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1545*22dc650dSSadaf Ebrahimi\(                            #  (
1546*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1547*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1548*22dc650dSSadaf Ebrahimi\)                           #                       )
1549*22dc650dSSadaf Ebrahimi)    #         special
1550*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1551*22dc650dSSadaf Ebrahimi)*                                  #            )*
1552*22dc650dSSadaf Ebrahimi\)                             #                )
1553*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1554*22dc650dSSadaf Ebrahimi# optional trailing comments
1555*22dc650dSSadaf Ebrahimi)*
1556*22dc650dSSadaf Ebrahimi)*  # additional domains
1557*22dc650dSSadaf Ebrahimi:
1558*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1559*22dc650dSSadaf Ebrahimi(?:
1560*22dc650dSSadaf Ebrahimi\(                              #  (
1561*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1562*22dc650dSSadaf Ebrahimi(?:                                 #       (
1563*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1564*22dc650dSSadaf Ebrahimi\(                            #  (
1565*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1566*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1567*22dc650dSSadaf Ebrahimi\)                           #                       )
1568*22dc650dSSadaf Ebrahimi)    #         special
1569*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1570*22dc650dSSadaf Ebrahimi)*                                  #            )*
1571*22dc650dSSadaf Ebrahimi\)                             #                )
1572*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1573*22dc650dSSadaf Ebrahimi# optional trailing comments
1574*22dc650dSSadaf Ebrahimi)?     #       optional route
1575*22dc650dSSadaf Ebrahimi(?:
1576*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1577*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1578*22dc650dSSadaf Ebrahimi# Atom
1579*22dc650dSSadaf Ebrahimi|                       #  or
1580*22dc650dSSadaf Ebrahimi"                                     # "
1581*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] *                            #   normal
1582*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
1583*22dc650dSSadaf Ebrahimi"                                     #        "
1584*22dc650dSSadaf Ebrahimi# Quoted string
1585*22dc650dSSadaf Ebrahimi)
1586*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1587*22dc650dSSadaf Ebrahimi(?:
1588*22dc650dSSadaf Ebrahimi\(                              #  (
1589*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1590*22dc650dSSadaf Ebrahimi(?:                                 #       (
1591*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1592*22dc650dSSadaf Ebrahimi\(                            #  (
1593*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1594*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1595*22dc650dSSadaf Ebrahimi\)                           #                       )
1596*22dc650dSSadaf Ebrahimi)    #         special
1597*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1598*22dc650dSSadaf Ebrahimi)*                                  #            )*
1599*22dc650dSSadaf Ebrahimi\)                             #                )
1600*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1601*22dc650dSSadaf Ebrahimi(?:
1602*22dc650dSSadaf Ebrahimi\.
1603*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1604*22dc650dSSadaf Ebrahimi(?:
1605*22dc650dSSadaf Ebrahimi\(                              #  (
1606*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1607*22dc650dSSadaf Ebrahimi(?:                                 #       (
1608*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1609*22dc650dSSadaf Ebrahimi\(                            #  (
1610*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1611*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1612*22dc650dSSadaf Ebrahimi\)                           #                       )
1613*22dc650dSSadaf Ebrahimi)    #         special
1614*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1615*22dc650dSSadaf Ebrahimi)*                                  #            )*
1616*22dc650dSSadaf Ebrahimi\)                             #                )
1617*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1618*22dc650dSSadaf Ebrahimi(?:
1619*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1620*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1621*22dc650dSSadaf Ebrahimi# Atom
1622*22dc650dSSadaf Ebrahimi|                       #  or
1623*22dc650dSSadaf Ebrahimi"                                     # "
1624*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] *                            #   normal
1625*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
1626*22dc650dSSadaf Ebrahimi"                                     #        "
1627*22dc650dSSadaf Ebrahimi# Quoted string
1628*22dc650dSSadaf Ebrahimi)
1629*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1630*22dc650dSSadaf Ebrahimi(?:
1631*22dc650dSSadaf Ebrahimi\(                              #  (
1632*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1633*22dc650dSSadaf Ebrahimi(?:                                 #       (
1634*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1635*22dc650dSSadaf Ebrahimi\(                            #  (
1636*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1637*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1638*22dc650dSSadaf Ebrahimi\)                           #                       )
1639*22dc650dSSadaf Ebrahimi)    #         special
1640*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1641*22dc650dSSadaf Ebrahimi)*                                  #            )*
1642*22dc650dSSadaf Ebrahimi\)                             #                )
1643*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1644*22dc650dSSadaf Ebrahimi# additional words
1645*22dc650dSSadaf Ebrahimi)*
1646*22dc650dSSadaf Ebrahimi@
1647*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1648*22dc650dSSadaf Ebrahimi(?:
1649*22dc650dSSadaf Ebrahimi\(                              #  (
1650*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1651*22dc650dSSadaf Ebrahimi(?:                                 #       (
1652*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1653*22dc650dSSadaf Ebrahimi\(                            #  (
1654*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1655*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1656*22dc650dSSadaf Ebrahimi\)                           #                       )
1657*22dc650dSSadaf Ebrahimi)    #         special
1658*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1659*22dc650dSSadaf Ebrahimi)*                                  #            )*
1660*22dc650dSSadaf Ebrahimi\)                             #                )
1661*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1662*22dc650dSSadaf Ebrahimi(?:
1663*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1664*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1665*22dc650dSSadaf Ebrahimi|
1666*22dc650dSSadaf Ebrahimi\[                            # [
1667*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
1668*22dc650dSSadaf Ebrahimi\]                           #           ]
1669*22dc650dSSadaf Ebrahimi)
1670*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1671*22dc650dSSadaf Ebrahimi(?:
1672*22dc650dSSadaf Ebrahimi\(                              #  (
1673*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1674*22dc650dSSadaf Ebrahimi(?:                                 #       (
1675*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1676*22dc650dSSadaf Ebrahimi\(                            #  (
1677*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1678*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1679*22dc650dSSadaf Ebrahimi\)                           #                       )
1680*22dc650dSSadaf Ebrahimi)    #         special
1681*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1682*22dc650dSSadaf Ebrahimi)*                                  #            )*
1683*22dc650dSSadaf Ebrahimi\)                             #                )
1684*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1685*22dc650dSSadaf Ebrahimi# optional trailing comments
1686*22dc650dSSadaf Ebrahimi(?:
1687*22dc650dSSadaf Ebrahimi\.
1688*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1689*22dc650dSSadaf Ebrahimi(?:
1690*22dc650dSSadaf Ebrahimi\(                              #  (
1691*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1692*22dc650dSSadaf Ebrahimi(?:                                 #       (
1693*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1694*22dc650dSSadaf Ebrahimi\(                            #  (
1695*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1696*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1697*22dc650dSSadaf Ebrahimi\)                           #                       )
1698*22dc650dSSadaf Ebrahimi)    #         special
1699*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1700*22dc650dSSadaf Ebrahimi)*                                  #            )*
1701*22dc650dSSadaf Ebrahimi\)                             #                )
1702*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1703*22dc650dSSadaf Ebrahimi(?:
1704*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
1705*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1706*22dc650dSSadaf Ebrahimi|
1707*22dc650dSSadaf Ebrahimi\[                            # [
1708*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
1709*22dc650dSSadaf Ebrahimi\]                           #           ]
1710*22dc650dSSadaf Ebrahimi)
1711*22dc650dSSadaf Ebrahimi[\040\t]*                    # Nab whitespace.
1712*22dc650dSSadaf Ebrahimi(?:
1713*22dc650dSSadaf Ebrahimi\(                              #  (
1714*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                             #     normal*
1715*22dc650dSSadaf Ebrahimi(?:                                 #       (
1716*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]  |
1717*22dc650dSSadaf Ebrahimi\(                            #  (
1718*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                            #     normal*
1719*22dc650dSSadaf Ebrahimi(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
1720*22dc650dSSadaf Ebrahimi\)                           #                       )
1721*22dc650dSSadaf Ebrahimi)    #         special
1722*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] *                         #         normal*
1723*22dc650dSSadaf Ebrahimi)*                                  #            )*
1724*22dc650dSSadaf Ebrahimi\)                             #                )
1725*22dc650dSSadaf Ebrahimi[\040\t]* )*    # If comment found, allow more spaces.
1726*22dc650dSSadaf Ebrahimi# optional trailing comments
1727*22dc650dSSadaf Ebrahimi)*
1728*22dc650dSSadaf Ebrahimi#       address spec
1729*22dc650dSSadaf Ebrahimi>                    #                 >
1730*22dc650dSSadaf Ebrahimi# name and address
1731*22dc650dSSadaf Ebrahimi)
1732*22dc650dSSadaf Ebrahimi/x
1733*22dc650dSSadaf Ebrahimi    Alan Other <user\@dom.ain>
1734*22dc650dSSadaf Ebrahimi    <user\@dom.ain>
1735*22dc650dSSadaf Ebrahimi    user\@dom.ain
1736*22dc650dSSadaf Ebrahimi    \"A. Other\" <user.1234\@dom.ain> (a comment)
1737*22dc650dSSadaf Ebrahimi    A. Other <user.1234\@dom.ain> (a comment)
1738*22dc650dSSadaf Ebrahimi    \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
1739*22dc650dSSadaf Ebrahimi    A missing angle <user\@some.where
1740*22dc650dSSadaf Ebrahimi\= Expect no match
1741*22dc650dSSadaf Ebrahimi    The quick brown fox
1742*22dc650dSSadaf Ebrahimi
1743*22dc650dSSadaf Ebrahimi/abc\0def\00pqr\000xyz\0000AB/
1744*22dc650dSSadaf Ebrahimi    abc\0def\00pqr\000xyz\0000AB
1745*22dc650dSSadaf Ebrahimi    abc456 abc\0def\00pqr\000xyz\0000ABCDE
1746*22dc650dSSadaf Ebrahimi
1747*22dc650dSSadaf Ebrahimi/abc\x0def\x00pqr\x000xyz\x0000AB/
1748*22dc650dSSadaf Ebrahimi    abc\x0def\x00pqr\x000xyz\x0000AB
1749*22dc650dSSadaf Ebrahimi    abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
1750*22dc650dSSadaf Ebrahimi
1751*22dc650dSSadaf Ebrahimi/^[\000-\037]/
1752*22dc650dSSadaf Ebrahimi    \0A
1753*22dc650dSSadaf Ebrahimi    \01B
1754*22dc650dSSadaf Ebrahimi    \037C
1755*22dc650dSSadaf Ebrahimi
1756*22dc650dSSadaf Ebrahimi/\0*/
1757*22dc650dSSadaf Ebrahimi    \0\0\0\0
1758*22dc650dSSadaf Ebrahimi
1759*22dc650dSSadaf Ebrahimi/A\x0{2,3}Z/
1760*22dc650dSSadaf Ebrahimi    The A\x0\x0Z
1761*22dc650dSSadaf Ebrahimi    An A\0\x0\0Z
1762*22dc650dSSadaf Ebrahimi\= Expect no match
1763*22dc650dSSadaf Ebrahimi    A\0Z
1764*22dc650dSSadaf Ebrahimi    A\0\x0\0\x0Z
1765*22dc650dSSadaf Ebrahimi
1766*22dc650dSSadaf Ebrahimi/^\s/
1767*22dc650dSSadaf Ebrahimi    \040abc
1768*22dc650dSSadaf Ebrahimi    \x0cabc
1769*22dc650dSSadaf Ebrahimi    \nabc
1770*22dc650dSSadaf Ebrahimi    \rabc
1771*22dc650dSSadaf Ebrahimi    \tabc
1772*22dc650dSSadaf Ebrahimi\= Expect no match
1773*22dc650dSSadaf Ebrahimi    abc
1774*22dc650dSSadaf Ebrahimi
1775*22dc650dSSadaf Ebrahimi/^a	b
1776*22dc650dSSadaf Ebrahimi      c/x
1777*22dc650dSSadaf Ebrahimi    abc
1778*22dc650dSSadaf Ebrahimi
1779*22dc650dSSadaf Ebrahimi/ab{1,3}bc/
1780*22dc650dSSadaf Ebrahimi    abbbbc
1781*22dc650dSSadaf Ebrahimi    abbbc
1782*22dc650dSSadaf Ebrahimi    abbc
1783*22dc650dSSadaf Ebrahimi\= Expect no match
1784*22dc650dSSadaf Ebrahimi    abc
1785*22dc650dSSadaf Ebrahimi    abbbbbc
1786*22dc650dSSadaf Ebrahimi
1787*22dc650dSSadaf Ebrahimi/([^.]*)\.([^:]*):[T ]+(.*)/
1788*22dc650dSSadaf Ebrahimi    track1.title:TBlah blah blah
1789*22dc650dSSadaf Ebrahimi
1790*22dc650dSSadaf Ebrahimi/([^.]*)\.([^:]*):[T ]+(.*)/i
1791*22dc650dSSadaf Ebrahimi    track1.title:TBlah blah blah
1792*22dc650dSSadaf Ebrahimi
1793*22dc650dSSadaf Ebrahimi/([^.]*)\.([^:]*):[t ]+(.*)/i
1794*22dc650dSSadaf Ebrahimi    track1.title:TBlah blah blah
1795*22dc650dSSadaf Ebrahimi
1796*22dc650dSSadaf Ebrahimi/^[W-c]+$/
1797*22dc650dSSadaf Ebrahimi    WXY_^abc
1798*22dc650dSSadaf Ebrahimi\= Expect no match
1799*22dc650dSSadaf Ebrahimi    wxy
1800*22dc650dSSadaf Ebrahimi
1801*22dc650dSSadaf Ebrahimi/^[W-c]+$/i
1802*22dc650dSSadaf Ebrahimi    WXY_^abc
1803*22dc650dSSadaf Ebrahimi    wxy_^ABC
1804*22dc650dSSadaf Ebrahimi
1805*22dc650dSSadaf Ebrahimi/^[\x3f-\x5F]+$/i
1806*22dc650dSSadaf Ebrahimi    WXY_^abc
1807*22dc650dSSadaf Ebrahimi    wxy_^ABC
1808*22dc650dSSadaf Ebrahimi
1809*22dc650dSSadaf Ebrahimi/^abc$/m
1810*22dc650dSSadaf Ebrahimi    abc
1811*22dc650dSSadaf Ebrahimi    qqq\nabc
1812*22dc650dSSadaf Ebrahimi    abc\nzzz
1813*22dc650dSSadaf Ebrahimi    qqq\nabc\nzzz
1814*22dc650dSSadaf Ebrahimi
1815*22dc650dSSadaf Ebrahimi/^abc$/
1816*22dc650dSSadaf Ebrahimi    abc
1817*22dc650dSSadaf Ebrahimi\= Expect no match
1818*22dc650dSSadaf Ebrahimi    qqq\nabc
1819*22dc650dSSadaf Ebrahimi    abc\nzzz
1820*22dc650dSSadaf Ebrahimi    qqq\nabc\nzzz
1821*22dc650dSSadaf Ebrahimi
1822*22dc650dSSadaf Ebrahimi/\Aabc\Z/m
1823*22dc650dSSadaf Ebrahimi    abc
1824*22dc650dSSadaf Ebrahimi    abc\n
1825*22dc650dSSadaf Ebrahimi\= Expect no match
1826*22dc650dSSadaf Ebrahimi    qqq\nabc
1827*22dc650dSSadaf Ebrahimi    abc\nzzz
1828*22dc650dSSadaf Ebrahimi    qqq\nabc\nzzz
1829*22dc650dSSadaf Ebrahimi
1830*22dc650dSSadaf Ebrahimi/\A(.)*\Z/s
1831*22dc650dSSadaf Ebrahimi    abc\ndef
1832*22dc650dSSadaf Ebrahimi
1833*22dc650dSSadaf Ebrahimi/\A(.)*\Z/m
1834*22dc650dSSadaf Ebrahimi\= Expect no match
1835*22dc650dSSadaf Ebrahimi    abc\ndef
1836*22dc650dSSadaf Ebrahimi
1837*22dc650dSSadaf Ebrahimi/(?:b)|(?::+)/
1838*22dc650dSSadaf Ebrahimi    b::c
1839*22dc650dSSadaf Ebrahimi    c::b
1840*22dc650dSSadaf Ebrahimi
1841*22dc650dSSadaf Ebrahimi/[-az]+/
1842*22dc650dSSadaf Ebrahimi    az-
1843*22dc650dSSadaf Ebrahimi\= Expect no match
1844*22dc650dSSadaf Ebrahimi    b
1845*22dc650dSSadaf Ebrahimi
1846*22dc650dSSadaf Ebrahimi/[az-]+/
1847*22dc650dSSadaf Ebrahimi    za-
1848*22dc650dSSadaf Ebrahimi\= Expect no match
1849*22dc650dSSadaf Ebrahimi    b
1850*22dc650dSSadaf Ebrahimi
1851*22dc650dSSadaf Ebrahimi/[a\-z]+/
1852*22dc650dSSadaf Ebrahimi    a-z
1853*22dc650dSSadaf Ebrahimi\= Expect no match
1854*22dc650dSSadaf Ebrahimi    b
1855*22dc650dSSadaf Ebrahimi
1856*22dc650dSSadaf Ebrahimi/[a-z]+/
1857*22dc650dSSadaf Ebrahimi    abcdxyz
1858*22dc650dSSadaf Ebrahimi
1859*22dc650dSSadaf Ebrahimi/[\d-]+/
1860*22dc650dSSadaf Ebrahimi    12-34
1861*22dc650dSSadaf Ebrahimi\= Expect no match
1862*22dc650dSSadaf Ebrahimi    aaa
1863*22dc650dSSadaf Ebrahimi
1864*22dc650dSSadaf Ebrahimi/\x5c/
1865*22dc650dSSadaf Ebrahimi    \\
1866*22dc650dSSadaf Ebrahimi
1867*22dc650dSSadaf Ebrahimi/\x20Z/
1868*22dc650dSSadaf Ebrahimi    the Zoo
1869*22dc650dSSadaf Ebrahimi\= Expect no match
1870*22dc650dSSadaf Ebrahimi    Zulu
1871*22dc650dSSadaf Ebrahimi
1872*22dc650dSSadaf Ebrahimi/ab{3cd/
1873*22dc650dSSadaf Ebrahimi    ab{3cd
1874*22dc650dSSadaf Ebrahimi
1875*22dc650dSSadaf Ebrahimi/ab{3,cd/
1876*22dc650dSSadaf Ebrahimi    ab{3,cd
1877*22dc650dSSadaf Ebrahimi
1878*22dc650dSSadaf Ebrahimi/ab{3,4a}cd/
1879*22dc650dSSadaf Ebrahimi    ab{3,4a}cd
1880*22dc650dSSadaf Ebrahimi
1881*22dc650dSSadaf Ebrahimi/{4,5a}bc/
1882*22dc650dSSadaf Ebrahimi    {4,5a}bc
1883*22dc650dSSadaf Ebrahimi
1884*22dc650dSSadaf Ebrahimi/^a.b/newline=lf
1885*22dc650dSSadaf Ebrahimi    a\rb
1886*22dc650dSSadaf Ebrahimi\= Expect no match
1887*22dc650dSSadaf Ebrahimi    a\nb
1888*22dc650dSSadaf Ebrahimi
1889*22dc650dSSadaf Ebrahimi/abc$/
1890*22dc650dSSadaf Ebrahimi    abc
1891*22dc650dSSadaf Ebrahimi    abc\n
1892*22dc650dSSadaf Ebrahimi\= Expect no match
1893*22dc650dSSadaf Ebrahimi    abc\ndef
1894*22dc650dSSadaf Ebrahimi
1895*22dc650dSSadaf Ebrahimi/(abc)\123/
1896*22dc650dSSadaf Ebrahimi    abc\x53
1897*22dc650dSSadaf Ebrahimi
1898*22dc650dSSadaf Ebrahimi/(abc)\223/
1899*22dc650dSSadaf Ebrahimi    abc\x93
1900*22dc650dSSadaf Ebrahimi
1901*22dc650dSSadaf Ebrahimi/(abc)\323/
1902*22dc650dSSadaf Ebrahimi    abc\xd3
1903*22dc650dSSadaf Ebrahimi
1904*22dc650dSSadaf Ebrahimi/(abc)\100/
1905*22dc650dSSadaf Ebrahimi    abc\x40
1906*22dc650dSSadaf Ebrahimi    abc\100
1907*22dc650dSSadaf Ebrahimi
1908*22dc650dSSadaf Ebrahimi/(abc)\1000/
1909*22dc650dSSadaf Ebrahimi    abc\x400
1910*22dc650dSSadaf Ebrahimi    abc\x40\x30
1911*22dc650dSSadaf Ebrahimi    abc\1000
1912*22dc650dSSadaf Ebrahimi    abc\100\x30
1913*22dc650dSSadaf Ebrahimi    abc\100\060
1914*22dc650dSSadaf Ebrahimi    abc\100\60
1915*22dc650dSSadaf Ebrahimi
1916*22dc650dSSadaf Ebrahimi/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
1917*22dc650dSSadaf Ebrahimi    abcdefghijk\12S
1918*22dc650dSSadaf Ebrahimi
1919*22dc650dSSadaf Ebrahimi/a{0}bc/
1920*22dc650dSSadaf Ebrahimi    bc
1921*22dc650dSSadaf Ebrahimi
1922*22dc650dSSadaf Ebrahimi/(a|(bc)){0,0}?xyz/
1923*22dc650dSSadaf Ebrahimi    xyz
1924*22dc650dSSadaf Ebrahimi
1925*22dc650dSSadaf Ebrahimi/abc[\10]de/
1926*22dc650dSSadaf Ebrahimi    abc\010de
1927*22dc650dSSadaf Ebrahimi
1928*22dc650dSSadaf Ebrahimi/abc[\1]de/
1929*22dc650dSSadaf Ebrahimi    abc\1de
1930*22dc650dSSadaf Ebrahimi
1931*22dc650dSSadaf Ebrahimi/(abc)[\1]de/
1932*22dc650dSSadaf Ebrahimi    abc\1de
1933*22dc650dSSadaf Ebrahimi
1934*22dc650dSSadaf Ebrahimi/(?s)a.b/
1935*22dc650dSSadaf Ebrahimi    a\nb
1936*22dc650dSSadaf Ebrahimi
1937*22dc650dSSadaf Ebrahimi/^([^a])([^\b])([^c]*)([^d]{3,4})/
1938*22dc650dSSadaf Ebrahimi    baNOTccccd
1939*22dc650dSSadaf Ebrahimi    baNOTcccd
1940*22dc650dSSadaf Ebrahimi    baNOTccd
1941*22dc650dSSadaf Ebrahimi    bacccd
1942*22dc650dSSadaf Ebrahimi\= Expect no match
1943*22dc650dSSadaf Ebrahimi    anything
1944*22dc650dSSadaf Ebrahimi    b\bc
1945*22dc650dSSadaf Ebrahimi    baccd
1946*22dc650dSSadaf Ebrahimi
1947*22dc650dSSadaf Ebrahimi/[^a]/
1948*22dc650dSSadaf Ebrahimi    Abc
1949*22dc650dSSadaf Ebrahimi
1950*22dc650dSSadaf Ebrahimi/[^a]/i
1951*22dc650dSSadaf Ebrahimi    Abc
1952*22dc650dSSadaf Ebrahimi
1953*22dc650dSSadaf Ebrahimi/[^a]+/
1954*22dc650dSSadaf Ebrahimi    AAAaAbc
1955*22dc650dSSadaf Ebrahimi
1956*22dc650dSSadaf Ebrahimi/[^a]+/i
1957*22dc650dSSadaf Ebrahimi    AAAaAbc
1958*22dc650dSSadaf Ebrahimi
1959*22dc650dSSadaf Ebrahimi/[^a]+/
1960*22dc650dSSadaf Ebrahimi    bbb\nccc
1961*22dc650dSSadaf Ebrahimi
1962*22dc650dSSadaf Ebrahimi/[^k]$/
1963*22dc650dSSadaf Ebrahimi    abc
1964*22dc650dSSadaf Ebrahimi\= Expect no match
1965*22dc650dSSadaf Ebrahimi    abk
1966*22dc650dSSadaf Ebrahimi
1967*22dc650dSSadaf Ebrahimi/[^k]{2,3}$/
1968*22dc650dSSadaf Ebrahimi    abc
1969*22dc650dSSadaf Ebrahimi    kbc
1970*22dc650dSSadaf Ebrahimi    kabc
1971*22dc650dSSadaf Ebrahimi\= Expect no match
1972*22dc650dSSadaf Ebrahimi    abk
1973*22dc650dSSadaf Ebrahimi    akb
1974*22dc650dSSadaf Ebrahimi    akk
1975*22dc650dSSadaf Ebrahimi
1976*22dc650dSSadaf Ebrahimi/^\d{8,}\@.+[^k]$/
1977*22dc650dSSadaf Ebrahimi    12345678\@a.b.c.d
1978*22dc650dSSadaf Ebrahimi    123456789\@x.y.z
1979*22dc650dSSadaf Ebrahimi\= Expect no match
1980*22dc650dSSadaf Ebrahimi    12345678\@x.y.uk
1981*22dc650dSSadaf Ebrahimi    1234567\@a.b.c.d
1982*22dc650dSSadaf Ebrahimi
1983*22dc650dSSadaf Ebrahimi/[^a]/
1984*22dc650dSSadaf Ebrahimi    aaaabcd
1985*22dc650dSSadaf Ebrahimi    aaAabcd
1986*22dc650dSSadaf Ebrahimi
1987*22dc650dSSadaf Ebrahimi/[^a]/i
1988*22dc650dSSadaf Ebrahimi    aaaabcd
1989*22dc650dSSadaf Ebrahimi    aaAabcd
1990*22dc650dSSadaf Ebrahimi
1991*22dc650dSSadaf Ebrahimi/[^az]/
1992*22dc650dSSadaf Ebrahimi    aaaabcd
1993*22dc650dSSadaf Ebrahimi    aaAabcd
1994*22dc650dSSadaf Ebrahimi
1995*22dc650dSSadaf Ebrahimi/[^az]/i
1996*22dc650dSSadaf Ebrahimi    aaaabcd
1997*22dc650dSSadaf Ebrahimi    aaAabcd
1998*22dc650dSSadaf Ebrahimi
1999*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/
2000*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
2001*22dc650dSSadaf Ebrahimi
2002*22dc650dSSadaf Ebrahimi/P[^*]TAIRE[^*]{1,6}?LL/
2003*22dc650dSSadaf Ebrahimi    xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
2004*22dc650dSSadaf Ebrahimi
2005*22dc650dSSadaf Ebrahimi/P[^*]TAIRE[^*]{1,}?LL/
2006*22dc650dSSadaf Ebrahimi    xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
2007*22dc650dSSadaf Ebrahimi
2008*22dc650dSSadaf Ebrahimi/(\.\d\d[1-9]?)\d+/
2009*22dc650dSSadaf Ebrahimi    1.230003938
2010*22dc650dSSadaf Ebrahimi    1.875000282
2011*22dc650dSSadaf Ebrahimi    1.235
2012*22dc650dSSadaf Ebrahimi
2013*22dc650dSSadaf Ebrahimi/(\.\d\d((?=0)|\d(?=\d)))/
2014*22dc650dSSadaf Ebrahimi    1.230003938
2015*22dc650dSSadaf Ebrahimi    1.875000282
2016*22dc650dSSadaf Ebrahimi\= Expect no match
2017*22dc650dSSadaf Ebrahimi    1.235
2018*22dc650dSSadaf Ebrahimi
2019*22dc650dSSadaf Ebrahimi/a(?)b/
2020*22dc650dSSadaf Ebrahimi    ab
2021*22dc650dSSadaf Ebrahimi
2022*22dc650dSSadaf Ebrahimi/\b(foo)\s+(\w+)/i
2023*22dc650dSSadaf Ebrahimi    Food is on the foo table
2024*22dc650dSSadaf Ebrahimi
2025*22dc650dSSadaf Ebrahimi/foo(.*)bar/
2026*22dc650dSSadaf Ebrahimi    The food is under the bar in the barn.
2027*22dc650dSSadaf Ebrahimi
2028*22dc650dSSadaf Ebrahimi/foo(.*?)bar/
2029*22dc650dSSadaf Ebrahimi    The food is under the bar in the barn.
2030*22dc650dSSadaf Ebrahimi
2031*22dc650dSSadaf Ebrahimi/(.*)(\d*)/no_auto_possess
2032*22dc650dSSadaf Ebrahimi    I have 2 numbers: 53147
2033*22dc650dSSadaf Ebrahimi
2034*22dc650dSSadaf Ebrahimi/(.*)(\d+)/
2035*22dc650dSSadaf Ebrahimi    I have 2 numbers: 53147
2036*22dc650dSSadaf Ebrahimi
2037*22dc650dSSadaf Ebrahimi/(.*?)(\d*)/no_auto_possess
2038*22dc650dSSadaf Ebrahimi    I have 2 numbers: 53147
2039*22dc650dSSadaf Ebrahimi
2040*22dc650dSSadaf Ebrahimi/(.*?)(\d+)/
2041*22dc650dSSadaf Ebrahimi    I have 2 numbers: 53147
2042*22dc650dSSadaf Ebrahimi
2043*22dc650dSSadaf Ebrahimi/(.*)(\d+)$/
2044*22dc650dSSadaf Ebrahimi    I have 2 numbers: 53147
2045*22dc650dSSadaf Ebrahimi
2046*22dc650dSSadaf Ebrahimi/(.*?)(\d+)$/
2047*22dc650dSSadaf Ebrahimi    I have 2 numbers: 53147
2048*22dc650dSSadaf Ebrahimi
2049*22dc650dSSadaf Ebrahimi/(.*)\b(\d+)$/
2050*22dc650dSSadaf Ebrahimi    I have 2 numbers: 53147
2051*22dc650dSSadaf Ebrahimi
2052*22dc650dSSadaf Ebrahimi/(.*\D)(\d+)$/
2053*22dc650dSSadaf Ebrahimi    I have 2 numbers: 53147
2054*22dc650dSSadaf Ebrahimi
2055*22dc650dSSadaf Ebrahimi/^\D*(?!123)/
2056*22dc650dSSadaf Ebrahimi    ABC123
2057*22dc650dSSadaf Ebrahimi
2058*22dc650dSSadaf Ebrahimi/^(\D*)(?=\d)(?!123)/
2059*22dc650dSSadaf Ebrahimi    ABC445
2060*22dc650dSSadaf Ebrahimi\= Expect no match
2061*22dc650dSSadaf Ebrahimi    ABC123
2062*22dc650dSSadaf Ebrahimi
2063*22dc650dSSadaf Ebrahimi/^[W-]46]/
2064*22dc650dSSadaf Ebrahimi    W46]789
2065*22dc650dSSadaf Ebrahimi    -46]789
2066*22dc650dSSadaf Ebrahimi\= Expect no match
2067*22dc650dSSadaf Ebrahimi    Wall
2068*22dc650dSSadaf Ebrahimi    Zebra
2069*22dc650dSSadaf Ebrahimi    42
2070*22dc650dSSadaf Ebrahimi    [abcd]
2071*22dc650dSSadaf Ebrahimi    ]abcd[
2072*22dc650dSSadaf Ebrahimi
2073*22dc650dSSadaf Ebrahimi/^[W-\]46]/
2074*22dc650dSSadaf Ebrahimi    W46]789
2075*22dc650dSSadaf Ebrahimi    Wall
2076*22dc650dSSadaf Ebrahimi    Zebra
2077*22dc650dSSadaf Ebrahimi    Xylophone
2078*22dc650dSSadaf Ebrahimi    42
2079*22dc650dSSadaf Ebrahimi    [abcd]
2080*22dc650dSSadaf Ebrahimi    ]abcd[
2081*22dc650dSSadaf Ebrahimi    \\backslash
2082*22dc650dSSadaf Ebrahimi\= Expect no match
2083*22dc650dSSadaf Ebrahimi    -46]789
2084*22dc650dSSadaf Ebrahimi    well
2085*22dc650dSSadaf Ebrahimi
2086*22dc650dSSadaf Ebrahimi/\d\d\/\d\d\/\d\d\d\d/
2087*22dc650dSSadaf Ebrahimi    01/01/2000
2088*22dc650dSSadaf Ebrahimi
2089*22dc650dSSadaf Ebrahimi/word (?:[a-zA-Z0-9]+ ){0,10}otherword/
2090*22dc650dSSadaf Ebrahimi  word cat dog elephant mussel cow horse canary baboon snake shark otherword
2091*22dc650dSSadaf Ebrahimi\= Expect no match
2092*22dc650dSSadaf Ebrahimi  word cat dog elephant mussel cow horse canary baboon snake shark
2093*22dc650dSSadaf Ebrahimi
2094*22dc650dSSadaf Ebrahimi/word (?:[a-zA-Z0-9]+ ){0,300}otherword/
2095*22dc650dSSadaf Ebrahimi\= Expect no match
2096*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
2097*22dc650dSSadaf Ebrahimi
2098*22dc650dSSadaf Ebrahimi/^(a){0,0}/
2099*22dc650dSSadaf Ebrahimi    bcd
2100*22dc650dSSadaf Ebrahimi    abc
2101*22dc650dSSadaf Ebrahimi    aab
2102*22dc650dSSadaf Ebrahimi
2103*22dc650dSSadaf Ebrahimi/^(a){0,1}/
2104*22dc650dSSadaf Ebrahimi    bcd
2105*22dc650dSSadaf Ebrahimi    abc
2106*22dc650dSSadaf Ebrahimi    aab
2107*22dc650dSSadaf Ebrahimi
2108*22dc650dSSadaf Ebrahimi/^(a){0,2}/
2109*22dc650dSSadaf Ebrahimi    bcd
2110*22dc650dSSadaf Ebrahimi    abc
2111*22dc650dSSadaf Ebrahimi    aab
2112*22dc650dSSadaf Ebrahimi
2113*22dc650dSSadaf Ebrahimi/^(a){0,3}/
2114*22dc650dSSadaf Ebrahimi    bcd
2115*22dc650dSSadaf Ebrahimi    abc
2116*22dc650dSSadaf Ebrahimi    aab
2117*22dc650dSSadaf Ebrahimi    aaa
2118*22dc650dSSadaf Ebrahimi
2119*22dc650dSSadaf Ebrahimi/^(a){0,}/
2120*22dc650dSSadaf Ebrahimi    bcd
2121*22dc650dSSadaf Ebrahimi    abc
2122*22dc650dSSadaf Ebrahimi    aab
2123*22dc650dSSadaf Ebrahimi    aaa
2124*22dc650dSSadaf Ebrahimi    aaaaaaaa
2125*22dc650dSSadaf Ebrahimi
2126*22dc650dSSadaf Ebrahimi/^(a){1,1}/
2127*22dc650dSSadaf Ebrahimi    abc
2128*22dc650dSSadaf Ebrahimi    aab
2129*22dc650dSSadaf Ebrahimi\= Expect no match
2130*22dc650dSSadaf Ebrahimi    bcd
2131*22dc650dSSadaf Ebrahimi
2132*22dc650dSSadaf Ebrahimi/^(a){1,2}/
2133*22dc650dSSadaf Ebrahimi    abc
2134*22dc650dSSadaf Ebrahimi    aab
2135*22dc650dSSadaf Ebrahimi\= Expect no match
2136*22dc650dSSadaf Ebrahimi    bcd
2137*22dc650dSSadaf Ebrahimi
2138*22dc650dSSadaf Ebrahimi/^(a){1,3}/
2139*22dc650dSSadaf Ebrahimi    abc
2140*22dc650dSSadaf Ebrahimi    aab
2141*22dc650dSSadaf Ebrahimi    aaa
2142*22dc650dSSadaf Ebrahimi\= Expect no match
2143*22dc650dSSadaf Ebrahimi    bcd
2144*22dc650dSSadaf Ebrahimi
2145*22dc650dSSadaf Ebrahimi/^(a){1,}/
2146*22dc650dSSadaf Ebrahimi    abc
2147*22dc650dSSadaf Ebrahimi    aab
2148*22dc650dSSadaf Ebrahimi    aaa
2149*22dc650dSSadaf Ebrahimi    aaaaaaaa
2150*22dc650dSSadaf Ebrahimi\= Expect no match
2151*22dc650dSSadaf Ebrahimi    bcd
2152*22dc650dSSadaf Ebrahimi
2153*22dc650dSSadaf Ebrahimi/.*\.gif/
2154*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
2155*22dc650dSSadaf Ebrahimi
2156*22dc650dSSadaf Ebrahimi/.{0,}\.gif/
2157*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
2158*22dc650dSSadaf Ebrahimi
2159*22dc650dSSadaf Ebrahimi/.*\.gif/m
2160*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
2161*22dc650dSSadaf Ebrahimi
2162*22dc650dSSadaf Ebrahimi/.*\.gif/s
2163*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
2164*22dc650dSSadaf Ebrahimi
2165*22dc650dSSadaf Ebrahimi/.*\.gif/ms
2166*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
2167*22dc650dSSadaf Ebrahimi
2168*22dc650dSSadaf Ebrahimi/.*$/
2169*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
2170*22dc650dSSadaf Ebrahimi
2171*22dc650dSSadaf Ebrahimi/.*$/m
2172*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
2173*22dc650dSSadaf Ebrahimi
2174*22dc650dSSadaf Ebrahimi/.*$/s
2175*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
2176*22dc650dSSadaf Ebrahimi
2177*22dc650dSSadaf Ebrahimi/.*$/ms
2178*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno
2179*22dc650dSSadaf Ebrahimi
2180*22dc650dSSadaf Ebrahimi/.*$/
2181*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno\n
2182*22dc650dSSadaf Ebrahimi
2183*22dc650dSSadaf Ebrahimi/.*$/m
2184*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno\n
2185*22dc650dSSadaf Ebrahimi
2186*22dc650dSSadaf Ebrahimi/.*$/s
2187*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno\n
2188*22dc650dSSadaf Ebrahimi
2189*22dc650dSSadaf Ebrahimi/.*$/ms
2190*22dc650dSSadaf Ebrahimi    borfle\nbib.gif\nno\n
2191*22dc650dSSadaf Ebrahimi
2192*22dc650dSSadaf Ebrahimi/(.*X|^B)/
2193*22dc650dSSadaf Ebrahimi    abcde\n1234Xyz
2194*22dc650dSSadaf Ebrahimi    BarFoo
2195*22dc650dSSadaf Ebrahimi\= Expect no match
2196*22dc650dSSadaf Ebrahimi    abcde\nBar
2197*22dc650dSSadaf Ebrahimi
2198*22dc650dSSadaf Ebrahimi/(.*X|^B)/m
2199*22dc650dSSadaf Ebrahimi    abcde\n1234Xyz
2200*22dc650dSSadaf Ebrahimi    BarFoo
2201*22dc650dSSadaf Ebrahimi    abcde\nBar
2202*22dc650dSSadaf Ebrahimi
2203*22dc650dSSadaf Ebrahimi/(.*X|^B)/s
2204*22dc650dSSadaf Ebrahimi    abcde\n1234Xyz
2205*22dc650dSSadaf Ebrahimi    BarFoo
2206*22dc650dSSadaf Ebrahimi\= Expect no match
2207*22dc650dSSadaf Ebrahimi    abcde\nBar
2208*22dc650dSSadaf Ebrahimi
2209*22dc650dSSadaf Ebrahimi/(.*X|^B)/ms
2210*22dc650dSSadaf Ebrahimi    abcde\n1234Xyz
2211*22dc650dSSadaf Ebrahimi    BarFoo
2212*22dc650dSSadaf Ebrahimi    abcde\nBar
2213*22dc650dSSadaf Ebrahimi
2214*22dc650dSSadaf Ebrahimi/(?s)(.*X|^B)/
2215*22dc650dSSadaf Ebrahimi    abcde\n1234Xyz
2216*22dc650dSSadaf Ebrahimi    BarFoo
2217*22dc650dSSadaf Ebrahimi\= Expect no match
2218*22dc650dSSadaf Ebrahimi    abcde\nBar
2219*22dc650dSSadaf Ebrahimi
2220*22dc650dSSadaf Ebrahimi/(?s:.*X|^B)/
2221*22dc650dSSadaf Ebrahimi    abcde\n1234Xyz
2222*22dc650dSSadaf Ebrahimi    BarFoo
2223*22dc650dSSadaf Ebrahimi\= Expect no match
2224*22dc650dSSadaf Ebrahimi    abcde\nBar
2225*22dc650dSSadaf Ebrahimi
2226*22dc650dSSadaf Ebrahimi/^.*B/
2227*22dc650dSSadaf Ebrahimi\= Expect no match
2228*22dc650dSSadaf Ebrahimi    abc\nB
2229*22dc650dSSadaf Ebrahimi
2230*22dc650dSSadaf Ebrahimi/(?s)^.*B/
2231*22dc650dSSadaf Ebrahimi    abc\nB
2232*22dc650dSSadaf Ebrahimi
2233*22dc650dSSadaf Ebrahimi/(?m)^.*B/
2234*22dc650dSSadaf Ebrahimi    abc\nB
2235*22dc650dSSadaf Ebrahimi
2236*22dc650dSSadaf Ebrahimi/(?ms)^.*B/
2237*22dc650dSSadaf Ebrahimi    abc\nB
2238*22dc650dSSadaf Ebrahimi
2239*22dc650dSSadaf Ebrahimi/(?ms)^B/
2240*22dc650dSSadaf Ebrahimi    abc\nB
2241*22dc650dSSadaf Ebrahimi
2242*22dc650dSSadaf Ebrahimi/(?s)B$/
2243*22dc650dSSadaf Ebrahimi    B\n
2244*22dc650dSSadaf Ebrahimi
2245*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]/
2246*22dc650dSSadaf Ebrahimi    123456654321
2247*22dc650dSSadaf Ebrahimi
2248*22dc650dSSadaf Ebrahimi/^\d\d\d\d\d\d\d\d\d\d\d\d/
2249*22dc650dSSadaf Ebrahimi    123456654321
2250*22dc650dSSadaf Ebrahimi
2251*22dc650dSSadaf Ebrahimi/^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
2252*22dc650dSSadaf Ebrahimi    123456654321
2253*22dc650dSSadaf Ebrahimi
2254*22dc650dSSadaf Ebrahimi/^[abc]{12}/
2255*22dc650dSSadaf Ebrahimi    abcabcabcabc
2256*22dc650dSSadaf Ebrahimi
2257*22dc650dSSadaf Ebrahimi/^[a-c]{12}/
2258*22dc650dSSadaf Ebrahimi    abcabcabcabc
2259*22dc650dSSadaf Ebrahimi
2260*22dc650dSSadaf Ebrahimi/^(a|b|c){12}/
2261*22dc650dSSadaf Ebrahimi    abcabcabcabc
2262*22dc650dSSadaf Ebrahimi
2263*22dc650dSSadaf Ebrahimi/^[abcdefghijklmnopqrstuvwxy0123456789]/
2264*22dc650dSSadaf Ebrahimi    n
2265*22dc650dSSadaf Ebrahimi\= Expect no match
2266*22dc650dSSadaf Ebrahimi    z
2267*22dc650dSSadaf Ebrahimi
2268*22dc650dSSadaf Ebrahimi/abcde{0,0}/
2269*22dc650dSSadaf Ebrahimi    abcd
2270*22dc650dSSadaf Ebrahimi\= Expect no match
2271*22dc650dSSadaf Ebrahimi    abce
2272*22dc650dSSadaf Ebrahimi
2273*22dc650dSSadaf Ebrahimi/ab[cd]{0,0}e/
2274*22dc650dSSadaf Ebrahimi    abe
2275*22dc650dSSadaf Ebrahimi\= Expect no match
2276*22dc650dSSadaf Ebrahimi    abcde
2277*22dc650dSSadaf Ebrahimi
2278*22dc650dSSadaf Ebrahimi/ab(c){0,0}d/
2279*22dc650dSSadaf Ebrahimi    abd
2280*22dc650dSSadaf Ebrahimi\= Expect no match
2281*22dc650dSSadaf Ebrahimi    abcd
2282*22dc650dSSadaf Ebrahimi
2283*22dc650dSSadaf Ebrahimi/a(b*)/
2284*22dc650dSSadaf Ebrahimi    a
2285*22dc650dSSadaf Ebrahimi    ab
2286*22dc650dSSadaf Ebrahimi    abbbb
2287*22dc650dSSadaf Ebrahimi\= Expect no match
2288*22dc650dSSadaf Ebrahimi    bbbbb
2289*22dc650dSSadaf Ebrahimi
2290*22dc650dSSadaf Ebrahimi/ab\d{0}e/
2291*22dc650dSSadaf Ebrahimi    abe
2292*22dc650dSSadaf Ebrahimi\= Expect no match
2293*22dc650dSSadaf Ebrahimi    ab1e
2294*22dc650dSSadaf Ebrahimi
2295*22dc650dSSadaf Ebrahimi/"([^\\"]+|\\.)*"/
2296*22dc650dSSadaf Ebrahimi    the \"quick\" brown fox
2297*22dc650dSSadaf Ebrahimi    \"the \\\"quick\\\" brown fox\"
2298*22dc650dSSadaf Ebrahimi
2299*22dc650dSSadaf Ebrahimi/.*?/g,aftertext
2300*22dc650dSSadaf Ebrahimi    abc
2301*22dc650dSSadaf Ebrahimi
2302*22dc650dSSadaf Ebrahimi/\b/g,aftertext
2303*22dc650dSSadaf Ebrahimi    abc
2304*22dc650dSSadaf Ebrahimi
2305*22dc650dSSadaf Ebrahimi/\b/g,aftertext
2306*22dc650dSSadaf Ebrahimi    abc
2307*22dc650dSSadaf Ebrahimi
2308*22dc650dSSadaf Ebrahimi//g
2309*22dc650dSSadaf Ebrahimi    abc
2310*22dc650dSSadaf Ebrahimi
2311*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
2312*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>
2313*22dc650dSSadaf Ebrahimi
2314*22dc650dSSadaf Ebrahimi/a[^a]b/
2315*22dc650dSSadaf Ebrahimi    acb
2316*22dc650dSSadaf Ebrahimi    a\nb
2317*22dc650dSSadaf Ebrahimi
2318*22dc650dSSadaf Ebrahimi/a.b/
2319*22dc650dSSadaf Ebrahimi    acb
2320*22dc650dSSadaf Ebrahimi\= Expect no match
2321*22dc650dSSadaf Ebrahimi    a\nb
2322*22dc650dSSadaf Ebrahimi
2323*22dc650dSSadaf Ebrahimi/a[^a]b/s
2324*22dc650dSSadaf Ebrahimi    acb
2325*22dc650dSSadaf Ebrahimi    a\nb
2326*22dc650dSSadaf Ebrahimi
2327*22dc650dSSadaf Ebrahimi/a.b/s
2328*22dc650dSSadaf Ebrahimi    acb
2329*22dc650dSSadaf Ebrahimi    a\nb
2330*22dc650dSSadaf Ebrahimi
2331*22dc650dSSadaf Ebrahimi/^(b+?|a){1,2}?c/
2332*22dc650dSSadaf Ebrahimi    bac
2333*22dc650dSSadaf Ebrahimi    bbac
2334*22dc650dSSadaf Ebrahimi    bbbac
2335*22dc650dSSadaf Ebrahimi    bbbbac
2336*22dc650dSSadaf Ebrahimi    bbbbbac
2337*22dc650dSSadaf Ebrahimi
2338*22dc650dSSadaf Ebrahimi/^(b+|a){1,2}?c/
2339*22dc650dSSadaf Ebrahimi    bac
2340*22dc650dSSadaf Ebrahimi    bbac
2341*22dc650dSSadaf Ebrahimi    bbbac
2342*22dc650dSSadaf Ebrahimi    bbbbac
2343*22dc650dSSadaf Ebrahimi    bbbbbac
2344*22dc650dSSadaf Ebrahimi
2345*22dc650dSSadaf Ebrahimi/(?!\A)x/m
2346*22dc650dSSadaf Ebrahimi    a\bx\n
2347*22dc650dSSadaf Ebrahimi\= Expect no match
2348*22dc650dSSadaf Ebrahimi    x\nb\n
2349*22dc650dSSadaf Ebrahimi
2350*22dc650dSSadaf Ebrahimi/\x0{ab}/
2351*22dc650dSSadaf Ebrahimi    \0{ab}
2352*22dc650dSSadaf Ebrahimi
2353*22dc650dSSadaf Ebrahimi/(A|B)*?CD/
2354*22dc650dSSadaf Ebrahimi    CD
2355*22dc650dSSadaf Ebrahimi
2356*22dc650dSSadaf Ebrahimi/(A|B)*CD/
2357*22dc650dSSadaf Ebrahimi    CD
2358*22dc650dSSadaf Ebrahimi
2359*22dc650dSSadaf Ebrahimi/(?<!bar)foo/
2360*22dc650dSSadaf Ebrahimi    foo
2361*22dc650dSSadaf Ebrahimi    catfood
2362*22dc650dSSadaf Ebrahimi    arfootle
2363*22dc650dSSadaf Ebrahimi    rfoosh
2364*22dc650dSSadaf Ebrahimi\= Expect no match
2365*22dc650dSSadaf Ebrahimi    barfoo
2366*22dc650dSSadaf Ebrahimi    towbarfoo
2367*22dc650dSSadaf Ebrahimi
2368*22dc650dSSadaf Ebrahimi/\w{3}(?<!bar)foo/
2369*22dc650dSSadaf Ebrahimi    catfood
2370*22dc650dSSadaf Ebrahimi\= Expect no match
2371*22dc650dSSadaf Ebrahimi    foo
2372*22dc650dSSadaf Ebrahimi    barfoo
2373*22dc650dSSadaf Ebrahimi    towbarfoo
2374*22dc650dSSadaf Ebrahimi
2375*22dc650dSSadaf Ebrahimi/(?<=(foo)a)bar/
2376*22dc650dSSadaf Ebrahimi    fooabar
2377*22dc650dSSadaf Ebrahimi\= Expect no match
2378*22dc650dSSadaf Ebrahimi    bar
2379*22dc650dSSadaf Ebrahimi    foobbar
2380*22dc650dSSadaf Ebrahimi
2381*22dc650dSSadaf Ebrahimi/\Aabc\z/m
2382*22dc650dSSadaf Ebrahimi    abc
2383*22dc650dSSadaf Ebrahimi\= Expect no match
2384*22dc650dSSadaf Ebrahimi    abc\n
2385*22dc650dSSadaf Ebrahimi    qqq\nabc
2386*22dc650dSSadaf Ebrahimi    abc\nzzz
2387*22dc650dSSadaf Ebrahimi    qqq\nabc\nzzz
2388*22dc650dSSadaf Ebrahimi
2389*22dc650dSSadaf Ebrahimi"(?>.*/)foo"
2390*22dc650dSSadaf Ebrahimi\= Expect no match
2391*22dc650dSSadaf Ebrahimi    /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
2392*22dc650dSSadaf Ebrahimi
2393*22dc650dSSadaf Ebrahimi"(?>.*/)foo"
2394*22dc650dSSadaf Ebrahimi    /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
2395*22dc650dSSadaf Ebrahimi
2396*22dc650dSSadaf Ebrahimi/(?>(\.\d\d[1-9]?))\d+/
2397*22dc650dSSadaf Ebrahimi    1.230003938
2398*22dc650dSSadaf Ebrahimi    1.875000282
2399*22dc650dSSadaf Ebrahimi\= Expect no match
2400*22dc650dSSadaf Ebrahimi    1.235
2401*22dc650dSSadaf Ebrahimi
2402*22dc650dSSadaf Ebrahimi/^((?>\w+)|(?>\s+))*$/
2403*22dc650dSSadaf Ebrahimi    now is the time for all good men to come to the aid of the party
2404*22dc650dSSadaf Ebrahimi\= Expect no match
2405*22dc650dSSadaf Ebrahimi    this is not a line with only words and spaces!
2406*22dc650dSSadaf Ebrahimi
2407*22dc650dSSadaf Ebrahimi/(\d+)(\w)/
2408*22dc650dSSadaf Ebrahimi    12345a
2409*22dc650dSSadaf Ebrahimi    12345+
2410*22dc650dSSadaf Ebrahimi
2411*22dc650dSSadaf Ebrahimi/((?>\d+))(\w)/
2412*22dc650dSSadaf Ebrahimi    12345a
2413*22dc650dSSadaf Ebrahimi\= Expect no match
2414*22dc650dSSadaf Ebrahimi    12345+
2415*22dc650dSSadaf Ebrahimi
2416*22dc650dSSadaf Ebrahimi/(?>a+)b/
2417*22dc650dSSadaf Ebrahimi    aaab
2418*22dc650dSSadaf Ebrahimi
2419*22dc650dSSadaf Ebrahimi/((?>a+)b)/
2420*22dc650dSSadaf Ebrahimi    aaab
2421*22dc650dSSadaf Ebrahimi
2422*22dc650dSSadaf Ebrahimi/(?>(a+))b/
2423*22dc650dSSadaf Ebrahimi    aaab
2424*22dc650dSSadaf Ebrahimi
2425*22dc650dSSadaf Ebrahimi/(?>b)+/
2426*22dc650dSSadaf Ebrahimi    aaabbbccc
2427*22dc650dSSadaf Ebrahimi
2428*22dc650dSSadaf Ebrahimi/(?>a+|b+|c+)*c/
2429*22dc650dSSadaf Ebrahimi    aaabbbbccccd
2430*22dc650dSSadaf Ebrahimi
2431*22dc650dSSadaf Ebrahimi/(a+|b+|c+)*c/
2432*22dc650dSSadaf Ebrahimi    aaabbbbccccd
2433*22dc650dSSadaf Ebrahimi
2434*22dc650dSSadaf Ebrahimi/((?>[^()]+)|\([^()]*\))+/
2435*22dc650dSSadaf Ebrahimi    ((abc(ade)ufh()()x
2436*22dc650dSSadaf Ebrahimi
2437*22dc650dSSadaf Ebrahimi/\(((?>[^()]+)|\([^()]+\))+\)/
2438*22dc650dSSadaf Ebrahimi    (abc)
2439*22dc650dSSadaf Ebrahimi    (abc(def)xyz)
2440*22dc650dSSadaf Ebrahimi\= Expect no match
2441*22dc650dSSadaf Ebrahimi    ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2442*22dc650dSSadaf Ebrahimi
2443*22dc650dSSadaf Ebrahimi/a(?-i)b/i
2444*22dc650dSSadaf Ebrahimi    ab
2445*22dc650dSSadaf Ebrahimi    Ab
2446*22dc650dSSadaf Ebrahimi\= Expect no match
2447*22dc650dSSadaf Ebrahimi    aB
2448*22dc650dSSadaf Ebrahimi    AB
2449*22dc650dSSadaf Ebrahimi
2450*22dc650dSSadaf Ebrahimi/(a (?x)b c)d e/
2451*22dc650dSSadaf Ebrahimi    a bcd e
2452*22dc650dSSadaf Ebrahimi\= Expect no match
2453*22dc650dSSadaf Ebrahimi    a b cd e
2454*22dc650dSSadaf Ebrahimi    abcd e
2455*22dc650dSSadaf Ebrahimi    a bcde
2456*22dc650dSSadaf Ebrahimi
2457*22dc650dSSadaf Ebrahimi/(a b(?x)c d (?-x)e f)/
2458*22dc650dSSadaf Ebrahimi    a bcde f
2459*22dc650dSSadaf Ebrahimi\= Expect no match
2460*22dc650dSSadaf Ebrahimi    abcdef
2461*22dc650dSSadaf Ebrahimi
2462*22dc650dSSadaf Ebrahimi/(a(?i)b)c/
2463*22dc650dSSadaf Ebrahimi    abc
2464*22dc650dSSadaf Ebrahimi    aBc
2465*22dc650dSSadaf Ebrahimi\= Expect no match
2466*22dc650dSSadaf Ebrahimi    abC
2467*22dc650dSSadaf Ebrahimi    aBC
2468*22dc650dSSadaf Ebrahimi    Abc
2469*22dc650dSSadaf Ebrahimi    ABc
2470*22dc650dSSadaf Ebrahimi    ABC
2471*22dc650dSSadaf Ebrahimi    AbC
2472*22dc650dSSadaf Ebrahimi
2473*22dc650dSSadaf Ebrahimi/a(?i:b)c/
2474*22dc650dSSadaf Ebrahimi    abc
2475*22dc650dSSadaf Ebrahimi    aBc
2476*22dc650dSSadaf Ebrahimi\= Expect no match
2477*22dc650dSSadaf Ebrahimi    ABC
2478*22dc650dSSadaf Ebrahimi    abC
2479*22dc650dSSadaf Ebrahimi    aBC
2480*22dc650dSSadaf Ebrahimi
2481*22dc650dSSadaf Ebrahimi/a(?i:b)*c/
2482*22dc650dSSadaf Ebrahimi    aBc
2483*22dc650dSSadaf Ebrahimi    aBBc
2484*22dc650dSSadaf Ebrahimi\= Expect no match
2485*22dc650dSSadaf Ebrahimi    aBC
2486*22dc650dSSadaf Ebrahimi    aBBC
2487*22dc650dSSadaf Ebrahimi
2488*22dc650dSSadaf Ebrahimi/a(?=b(?i)c)\w\wd/
2489*22dc650dSSadaf Ebrahimi    abcd
2490*22dc650dSSadaf Ebrahimi    abCd
2491*22dc650dSSadaf Ebrahimi\= Expect no match
2492*22dc650dSSadaf Ebrahimi    aBCd
2493*22dc650dSSadaf Ebrahimi    abcD
2494*22dc650dSSadaf Ebrahimi
2495*22dc650dSSadaf Ebrahimi/(?s-i:more.*than).*million/i
2496*22dc650dSSadaf Ebrahimi    more than million
2497*22dc650dSSadaf Ebrahimi    more than MILLION
2498*22dc650dSSadaf Ebrahimi    more \n than Million
2499*22dc650dSSadaf Ebrahimi\= Expect no match
2500*22dc650dSSadaf Ebrahimi    MORE THAN MILLION
2501*22dc650dSSadaf Ebrahimi    more \n than \n million
2502*22dc650dSSadaf Ebrahimi
2503*22dc650dSSadaf Ebrahimi/(?:(?s-i)more.*than).*million/i
2504*22dc650dSSadaf Ebrahimi    more than million
2505*22dc650dSSadaf Ebrahimi    more than MILLION
2506*22dc650dSSadaf Ebrahimi    more \n than Million
2507*22dc650dSSadaf Ebrahimi\= Expect no match
2508*22dc650dSSadaf Ebrahimi    MORE THAN MILLION
2509*22dc650dSSadaf Ebrahimi    more \n than \n million
2510*22dc650dSSadaf Ebrahimi
2511*22dc650dSSadaf Ebrahimi/(?>a(?i)b+)+c/
2512*22dc650dSSadaf Ebrahimi    abc
2513*22dc650dSSadaf Ebrahimi    aBbc
2514*22dc650dSSadaf Ebrahimi    aBBc
2515*22dc650dSSadaf Ebrahimi\= Expect no match
2516*22dc650dSSadaf Ebrahimi    Abc
2517*22dc650dSSadaf Ebrahimi    abAb
2518*22dc650dSSadaf Ebrahimi    abbC
2519*22dc650dSSadaf Ebrahimi
2520*22dc650dSSadaf Ebrahimi/(?=a(?i)b)\w\wc/
2521*22dc650dSSadaf Ebrahimi    abc
2522*22dc650dSSadaf Ebrahimi    aBc
2523*22dc650dSSadaf Ebrahimi\= Expect no match
2524*22dc650dSSadaf Ebrahimi    Ab
2525*22dc650dSSadaf Ebrahimi    abC
2526*22dc650dSSadaf Ebrahimi    aBC
2527*22dc650dSSadaf Ebrahimi
2528*22dc650dSSadaf Ebrahimi/(?<=a(?i)b)(\w\w)c/
2529*22dc650dSSadaf Ebrahimi    abxxc
2530*22dc650dSSadaf Ebrahimi    aBxxc
2531*22dc650dSSadaf Ebrahimi\= Expect no match
2532*22dc650dSSadaf Ebrahimi    Abxxc
2533*22dc650dSSadaf Ebrahimi    ABxxc
2534*22dc650dSSadaf Ebrahimi    abxxC
2535*22dc650dSSadaf Ebrahimi
2536*22dc650dSSadaf Ebrahimi/^(?(?=abc)\w{3}:|\d\d)$/
2537*22dc650dSSadaf Ebrahimi    abc:
2538*22dc650dSSadaf Ebrahimi    12
2539*22dc650dSSadaf Ebrahimi\= Expect no match
2540*22dc650dSSadaf Ebrahimi    123
2541*22dc650dSSadaf Ebrahimi    xyz
2542*22dc650dSSadaf Ebrahimi
2543*22dc650dSSadaf Ebrahimi/^(?(?!abc)\d\d|\w{3}:)$/
2544*22dc650dSSadaf Ebrahimi    abc:
2545*22dc650dSSadaf Ebrahimi    12
2546*22dc650dSSadaf Ebrahimi\= Expect no match
2547*22dc650dSSadaf Ebrahimi    123
2548*22dc650dSSadaf Ebrahimi    xyz
2549*22dc650dSSadaf Ebrahimi
2550*22dc650dSSadaf Ebrahimi/(?(?<=foo)bar|cat)/
2551*22dc650dSSadaf Ebrahimi    foobar
2552*22dc650dSSadaf Ebrahimi    cat
2553*22dc650dSSadaf Ebrahimi    fcat
2554*22dc650dSSadaf Ebrahimi    focat
2555*22dc650dSSadaf Ebrahimi\= Expect no match
2556*22dc650dSSadaf Ebrahimi    foocat
2557*22dc650dSSadaf Ebrahimi
2558*22dc650dSSadaf Ebrahimi/(?(?<!foo)cat|bar)/
2559*22dc650dSSadaf Ebrahimi    foobar
2560*22dc650dSSadaf Ebrahimi    cat
2561*22dc650dSSadaf Ebrahimi    fcat
2562*22dc650dSSadaf Ebrahimi    focat
2563*22dc650dSSadaf Ebrahimi\= Expect no match
2564*22dc650dSSadaf Ebrahimi    foocat
2565*22dc650dSSadaf Ebrahimi
2566*22dc650dSSadaf Ebrahimi/(?>a*)*/
2567*22dc650dSSadaf Ebrahimi    a
2568*22dc650dSSadaf Ebrahimi    aa
2569*22dc650dSSadaf Ebrahimi    aaaa
2570*22dc650dSSadaf Ebrahimi
2571*22dc650dSSadaf Ebrahimi/(abc|)+/
2572*22dc650dSSadaf Ebrahimi    abc
2573*22dc650dSSadaf Ebrahimi    abcabc
2574*22dc650dSSadaf Ebrahimi    abcabcabc
2575*22dc650dSSadaf Ebrahimi    xyz
2576*22dc650dSSadaf Ebrahimi
2577*22dc650dSSadaf Ebrahimi/([a]*)*/
2578*22dc650dSSadaf Ebrahimi    a
2579*22dc650dSSadaf Ebrahimi    aaaaa
2580*22dc650dSSadaf Ebrahimi
2581*22dc650dSSadaf Ebrahimi/([ab]*)*/
2582*22dc650dSSadaf Ebrahimi    a
2583*22dc650dSSadaf Ebrahimi    b
2584*22dc650dSSadaf Ebrahimi    ababab
2585*22dc650dSSadaf Ebrahimi    aaaabcde
2586*22dc650dSSadaf Ebrahimi    bbbb
2587*22dc650dSSadaf Ebrahimi
2588*22dc650dSSadaf Ebrahimi/([^a]*)*/
2589*22dc650dSSadaf Ebrahimi    b
2590*22dc650dSSadaf Ebrahimi    bbbb
2591*22dc650dSSadaf Ebrahimi    aaa
2592*22dc650dSSadaf Ebrahimi
2593*22dc650dSSadaf Ebrahimi/([^ab]*)*/
2594*22dc650dSSadaf Ebrahimi    cccc
2595*22dc650dSSadaf Ebrahimi    abab
2596*22dc650dSSadaf Ebrahimi
2597*22dc650dSSadaf Ebrahimi/([a]*?)*/
2598*22dc650dSSadaf Ebrahimi    a
2599*22dc650dSSadaf Ebrahimi    aaaa
2600*22dc650dSSadaf Ebrahimi
2601*22dc650dSSadaf Ebrahimi/([ab]*?)*/
2602*22dc650dSSadaf Ebrahimi    a
2603*22dc650dSSadaf Ebrahimi    b
2604*22dc650dSSadaf Ebrahimi    abab
2605*22dc650dSSadaf Ebrahimi    baba
2606*22dc650dSSadaf Ebrahimi
2607*22dc650dSSadaf Ebrahimi/([^a]*?)*/
2608*22dc650dSSadaf Ebrahimi    b
2609*22dc650dSSadaf Ebrahimi    bbbb
2610*22dc650dSSadaf Ebrahimi    aaa
2611*22dc650dSSadaf Ebrahimi
2612*22dc650dSSadaf Ebrahimi/([^ab]*?)*/
2613*22dc650dSSadaf Ebrahimi    c
2614*22dc650dSSadaf Ebrahimi    cccc
2615*22dc650dSSadaf Ebrahimi    baba
2616*22dc650dSSadaf Ebrahimi
2617*22dc650dSSadaf Ebrahimi/(?>a*)*/
2618*22dc650dSSadaf Ebrahimi    a
2619*22dc650dSSadaf Ebrahimi    aaabcde
2620*22dc650dSSadaf Ebrahimi
2621*22dc650dSSadaf Ebrahimi/((?>a*))*/
2622*22dc650dSSadaf Ebrahimi    aaaaa
2623*22dc650dSSadaf Ebrahimi    aabbaa
2624*22dc650dSSadaf Ebrahimi
2625*22dc650dSSadaf Ebrahimi/((?>a*?))*/
2626*22dc650dSSadaf Ebrahimi    aaaaa
2627*22dc650dSSadaf Ebrahimi    aabbaa
2628*22dc650dSSadaf Ebrahimi
2629*22dc650dSSadaf Ebrahimi/(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /x
2630*22dc650dSSadaf Ebrahimi    12-sep-98
2631*22dc650dSSadaf Ebrahimi    12-09-98
2632*22dc650dSSadaf Ebrahimi\= Expect no match
2633*22dc650dSSadaf Ebrahimi    sep-12-98
2634*22dc650dSSadaf Ebrahimi
2635*22dc650dSSadaf Ebrahimi/(?i:saturday|sunday)/
2636*22dc650dSSadaf Ebrahimi    saturday
2637*22dc650dSSadaf Ebrahimi    sunday
2638*22dc650dSSadaf Ebrahimi    Saturday
2639*22dc650dSSadaf Ebrahimi    Sunday
2640*22dc650dSSadaf Ebrahimi    SATURDAY
2641*22dc650dSSadaf Ebrahimi    SUNDAY
2642*22dc650dSSadaf Ebrahimi    SunDay
2643*22dc650dSSadaf Ebrahimi
2644*22dc650dSSadaf Ebrahimi/(a(?i)bc|BB)x/
2645*22dc650dSSadaf Ebrahimi    abcx
2646*22dc650dSSadaf Ebrahimi    aBCx
2647*22dc650dSSadaf Ebrahimi    bbx
2648*22dc650dSSadaf Ebrahimi    BBx
2649*22dc650dSSadaf Ebrahimi\= Expect no match
2650*22dc650dSSadaf Ebrahimi    abcX
2651*22dc650dSSadaf Ebrahimi    aBCX
2652*22dc650dSSadaf Ebrahimi    bbX
2653*22dc650dSSadaf Ebrahimi    BBX
2654*22dc650dSSadaf Ebrahimi
2655*22dc650dSSadaf Ebrahimi/^([ab](?i)[cd]|[ef])/
2656*22dc650dSSadaf Ebrahimi    ac
2657*22dc650dSSadaf Ebrahimi    aC
2658*22dc650dSSadaf Ebrahimi    bD
2659*22dc650dSSadaf Ebrahimi    elephant
2660*22dc650dSSadaf Ebrahimi    Europe
2661*22dc650dSSadaf Ebrahimi    frog
2662*22dc650dSSadaf Ebrahimi    France
2663*22dc650dSSadaf Ebrahimi\= Expect no match
2664*22dc650dSSadaf Ebrahimi    Africa
2665*22dc650dSSadaf Ebrahimi
2666*22dc650dSSadaf Ebrahimi/^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
2667*22dc650dSSadaf Ebrahimi    ab
2668*22dc650dSSadaf Ebrahimi    aBd
2669*22dc650dSSadaf Ebrahimi    xy
2670*22dc650dSSadaf Ebrahimi    xY
2671*22dc650dSSadaf Ebrahimi    zebra
2672*22dc650dSSadaf Ebrahimi    Zambesi
2673*22dc650dSSadaf Ebrahimi\= Expect no match
2674*22dc650dSSadaf Ebrahimi    aCD
2675*22dc650dSSadaf Ebrahimi    XY
2676*22dc650dSSadaf Ebrahimi
2677*22dc650dSSadaf Ebrahimi/(?<=foo\n)^bar/m
2678*22dc650dSSadaf Ebrahimi    foo\nbar
2679*22dc650dSSadaf Ebrahimi\= Expect no match
2680*22dc650dSSadaf Ebrahimi    bar
2681*22dc650dSSadaf Ebrahimi    baz\nbar
2682*22dc650dSSadaf Ebrahimi
2683*22dc650dSSadaf Ebrahimi/(?<=(?<!foo)bar)baz/
2684*22dc650dSSadaf Ebrahimi    barbaz
2685*22dc650dSSadaf Ebrahimi    barbarbaz
2686*22dc650dSSadaf Ebrahimi    koobarbaz
2687*22dc650dSSadaf Ebrahimi\= Expect no match
2688*22dc650dSSadaf Ebrahimi    baz
2689*22dc650dSSadaf Ebrahimi    foobarbaz
2690*22dc650dSSadaf Ebrahimi
2691*22dc650dSSadaf Ebrahimi# The following tests are taken from the Perl 5.005 test suite; some of them
2692*22dc650dSSadaf Ebrahimi# are compatible with 5.004, but I'd rather not have to sort them out.
2693*22dc650dSSadaf Ebrahimi
2694*22dc650dSSadaf Ebrahimi/abc/
2695*22dc650dSSadaf Ebrahimi    abc
2696*22dc650dSSadaf Ebrahimi    xabcy
2697*22dc650dSSadaf Ebrahimi    ababc
2698*22dc650dSSadaf Ebrahimi\= Expect no match
2699*22dc650dSSadaf Ebrahimi    xbc
2700*22dc650dSSadaf Ebrahimi    axc
2701*22dc650dSSadaf Ebrahimi    abx
2702*22dc650dSSadaf Ebrahimi
2703*22dc650dSSadaf Ebrahimi/ab*c/
2704*22dc650dSSadaf Ebrahimi    abc
2705*22dc650dSSadaf Ebrahimi
2706*22dc650dSSadaf Ebrahimi/ab*bc/
2707*22dc650dSSadaf Ebrahimi    abc
2708*22dc650dSSadaf Ebrahimi    abbc
2709*22dc650dSSadaf Ebrahimi    abbbbc
2710*22dc650dSSadaf Ebrahimi
2711*22dc650dSSadaf Ebrahimi/.{1}/
2712*22dc650dSSadaf Ebrahimi    abbbbc
2713*22dc650dSSadaf Ebrahimi
2714*22dc650dSSadaf Ebrahimi/.{3,4}/
2715*22dc650dSSadaf Ebrahimi    abbbbc
2716*22dc650dSSadaf Ebrahimi
2717*22dc650dSSadaf Ebrahimi/ab{0,}bc/
2718*22dc650dSSadaf Ebrahimi    abbbbc
2719*22dc650dSSadaf Ebrahimi
2720*22dc650dSSadaf Ebrahimi/ab+bc/
2721*22dc650dSSadaf Ebrahimi    abbc
2722*22dc650dSSadaf Ebrahimi\= Expect no match
2723*22dc650dSSadaf Ebrahimi    abc
2724*22dc650dSSadaf Ebrahimi    abq
2725*22dc650dSSadaf Ebrahimi
2726*22dc650dSSadaf Ebrahimi/ab+bc/
2727*22dc650dSSadaf Ebrahimi    abbbbc
2728*22dc650dSSadaf Ebrahimi
2729*22dc650dSSadaf Ebrahimi/ab{1,}bc/
2730*22dc650dSSadaf Ebrahimi    abbbbc
2731*22dc650dSSadaf Ebrahimi
2732*22dc650dSSadaf Ebrahimi/ab{1,3}bc/
2733*22dc650dSSadaf Ebrahimi    abbbbc
2734*22dc650dSSadaf Ebrahimi
2735*22dc650dSSadaf Ebrahimi/ab{3,4}bc/
2736*22dc650dSSadaf Ebrahimi    abbbbc
2737*22dc650dSSadaf Ebrahimi
2738*22dc650dSSadaf Ebrahimi/ab{4,5}bc/
2739*22dc650dSSadaf Ebrahimi\= Expect no match
2740*22dc650dSSadaf Ebrahimi    abq
2741*22dc650dSSadaf Ebrahimi    abbbbc
2742*22dc650dSSadaf Ebrahimi
2743*22dc650dSSadaf Ebrahimi/ab?bc/
2744*22dc650dSSadaf Ebrahimi    abbc
2745*22dc650dSSadaf Ebrahimi    abc
2746*22dc650dSSadaf Ebrahimi
2747*22dc650dSSadaf Ebrahimi/ab{0,1}bc/
2748*22dc650dSSadaf Ebrahimi    abc
2749*22dc650dSSadaf Ebrahimi
2750*22dc650dSSadaf Ebrahimi/ab?bc/
2751*22dc650dSSadaf Ebrahimi
2752*22dc650dSSadaf Ebrahimi/ab?c/
2753*22dc650dSSadaf Ebrahimi    abc
2754*22dc650dSSadaf Ebrahimi
2755*22dc650dSSadaf Ebrahimi/ab{0,1}c/
2756*22dc650dSSadaf Ebrahimi    abc
2757*22dc650dSSadaf Ebrahimi
2758*22dc650dSSadaf Ebrahimi/^abc$/
2759*22dc650dSSadaf Ebrahimi    abc
2760*22dc650dSSadaf Ebrahimi\= Expect no match
2761*22dc650dSSadaf Ebrahimi    abbbbc
2762*22dc650dSSadaf Ebrahimi    abcc
2763*22dc650dSSadaf Ebrahimi
2764*22dc650dSSadaf Ebrahimi/^abc/
2765*22dc650dSSadaf Ebrahimi    abcc
2766*22dc650dSSadaf Ebrahimi
2767*22dc650dSSadaf Ebrahimi/^abc$/
2768*22dc650dSSadaf Ebrahimi
2769*22dc650dSSadaf Ebrahimi/abc$/
2770*22dc650dSSadaf Ebrahimi    aabc
2771*22dc650dSSadaf Ebrahimi    aabc
2772*22dc650dSSadaf Ebrahimi\= Expect no match
2773*22dc650dSSadaf Ebrahimi    aabcd
2774*22dc650dSSadaf Ebrahimi
2775*22dc650dSSadaf Ebrahimi/^/
2776*22dc650dSSadaf Ebrahimi    abc
2777*22dc650dSSadaf Ebrahimi
2778*22dc650dSSadaf Ebrahimi/$/
2779*22dc650dSSadaf Ebrahimi    abc
2780*22dc650dSSadaf Ebrahimi
2781*22dc650dSSadaf Ebrahimi/a.c/
2782*22dc650dSSadaf Ebrahimi    abc
2783*22dc650dSSadaf Ebrahimi    axc
2784*22dc650dSSadaf Ebrahimi
2785*22dc650dSSadaf Ebrahimi/a.*c/
2786*22dc650dSSadaf Ebrahimi    axyzc
2787*22dc650dSSadaf Ebrahimi
2788*22dc650dSSadaf Ebrahimi/a[bc]d/
2789*22dc650dSSadaf Ebrahimi    abd
2790*22dc650dSSadaf Ebrahimi\= Expect no match
2791*22dc650dSSadaf Ebrahimi    axyzd
2792*22dc650dSSadaf Ebrahimi    abc
2793*22dc650dSSadaf Ebrahimi
2794*22dc650dSSadaf Ebrahimi/a[b-d]e/
2795*22dc650dSSadaf Ebrahimi    ace
2796*22dc650dSSadaf Ebrahimi
2797*22dc650dSSadaf Ebrahimi/a[b-d]/
2798*22dc650dSSadaf Ebrahimi    aac
2799*22dc650dSSadaf Ebrahimi
2800*22dc650dSSadaf Ebrahimi/a[-b]/
2801*22dc650dSSadaf Ebrahimi    a-
2802*22dc650dSSadaf Ebrahimi
2803*22dc650dSSadaf Ebrahimi/a[b-]/
2804*22dc650dSSadaf Ebrahimi    a-
2805*22dc650dSSadaf Ebrahimi
2806*22dc650dSSadaf Ebrahimi/a]/
2807*22dc650dSSadaf Ebrahimi    a]
2808*22dc650dSSadaf Ebrahimi
2809*22dc650dSSadaf Ebrahimi/a[]]b/
2810*22dc650dSSadaf Ebrahimi    a]b
2811*22dc650dSSadaf Ebrahimi
2812*22dc650dSSadaf Ebrahimi/a[^bc]d/
2813*22dc650dSSadaf Ebrahimi    aed
2814*22dc650dSSadaf Ebrahimi\= Expect no match
2815*22dc650dSSadaf Ebrahimi    abd
2816*22dc650dSSadaf Ebrahimi    abd
2817*22dc650dSSadaf Ebrahimi
2818*22dc650dSSadaf Ebrahimi/a[^-b]c/
2819*22dc650dSSadaf Ebrahimi    adc
2820*22dc650dSSadaf Ebrahimi
2821*22dc650dSSadaf Ebrahimi/a[^]b]c/
2822*22dc650dSSadaf Ebrahimi    adc
2823*22dc650dSSadaf Ebrahimi    a-c
2824*22dc650dSSadaf Ebrahimi\= Expect no match
2825*22dc650dSSadaf Ebrahimi    a]c
2826*22dc650dSSadaf Ebrahimi
2827*22dc650dSSadaf Ebrahimi/\ba\b/
2828*22dc650dSSadaf Ebrahimi    a-
2829*22dc650dSSadaf Ebrahimi    -a
2830*22dc650dSSadaf Ebrahimi    -a-
2831*22dc650dSSadaf Ebrahimi
2832*22dc650dSSadaf Ebrahimi/\by\b/
2833*22dc650dSSadaf Ebrahimi\= Expect no match
2834*22dc650dSSadaf Ebrahimi    xy
2835*22dc650dSSadaf Ebrahimi    yz
2836*22dc650dSSadaf Ebrahimi    xyz
2837*22dc650dSSadaf Ebrahimi
2838*22dc650dSSadaf Ebrahimi/\Ba\B/
2839*22dc650dSSadaf Ebrahimi\= Expect no match
2840*22dc650dSSadaf Ebrahimi    a-
2841*22dc650dSSadaf Ebrahimi    -a
2842*22dc650dSSadaf Ebrahimi    -a-
2843*22dc650dSSadaf Ebrahimi
2844*22dc650dSSadaf Ebrahimi/\By\b/
2845*22dc650dSSadaf Ebrahimi    xy
2846*22dc650dSSadaf Ebrahimi
2847*22dc650dSSadaf Ebrahimi/\by\B/
2848*22dc650dSSadaf Ebrahimi    yz
2849*22dc650dSSadaf Ebrahimi
2850*22dc650dSSadaf Ebrahimi/\By\B/
2851*22dc650dSSadaf Ebrahimi    xyz
2852*22dc650dSSadaf Ebrahimi
2853*22dc650dSSadaf Ebrahimi/\w/
2854*22dc650dSSadaf Ebrahimi    a
2855*22dc650dSSadaf Ebrahimi
2856*22dc650dSSadaf Ebrahimi/\W/
2857*22dc650dSSadaf Ebrahimi    -
2858*22dc650dSSadaf Ebrahimi\= Expect no match
2859*22dc650dSSadaf Ebrahimi    a
2860*22dc650dSSadaf Ebrahimi
2861*22dc650dSSadaf Ebrahimi/a\sb/
2862*22dc650dSSadaf Ebrahimi    a b
2863*22dc650dSSadaf Ebrahimi
2864*22dc650dSSadaf Ebrahimi/a\Sb/
2865*22dc650dSSadaf Ebrahimi    a-b
2866*22dc650dSSadaf Ebrahimi\= Expect no match
2867*22dc650dSSadaf Ebrahimi    a b
2868*22dc650dSSadaf Ebrahimi
2869*22dc650dSSadaf Ebrahimi/\d/
2870*22dc650dSSadaf Ebrahimi    1
2871*22dc650dSSadaf Ebrahimi
2872*22dc650dSSadaf Ebrahimi/\D/
2873*22dc650dSSadaf Ebrahimi    -
2874*22dc650dSSadaf Ebrahimi\= Expect no match
2875*22dc650dSSadaf Ebrahimi    1
2876*22dc650dSSadaf Ebrahimi
2877*22dc650dSSadaf Ebrahimi/[\w]/
2878*22dc650dSSadaf Ebrahimi    a
2879*22dc650dSSadaf Ebrahimi
2880*22dc650dSSadaf Ebrahimi/[\W]/
2881*22dc650dSSadaf Ebrahimi    -
2882*22dc650dSSadaf Ebrahimi\= Expect no match
2883*22dc650dSSadaf Ebrahimi    a
2884*22dc650dSSadaf Ebrahimi
2885*22dc650dSSadaf Ebrahimi/a[\s]b/
2886*22dc650dSSadaf Ebrahimi    a b
2887*22dc650dSSadaf Ebrahimi
2888*22dc650dSSadaf Ebrahimi/a[\S]b/
2889*22dc650dSSadaf Ebrahimi    a-b
2890*22dc650dSSadaf Ebrahimi\= Expect no match
2891*22dc650dSSadaf Ebrahimi    a b
2892*22dc650dSSadaf Ebrahimi
2893*22dc650dSSadaf Ebrahimi/[\d]/
2894*22dc650dSSadaf Ebrahimi    1
2895*22dc650dSSadaf Ebrahimi
2896*22dc650dSSadaf Ebrahimi/[\D]/
2897*22dc650dSSadaf Ebrahimi    -
2898*22dc650dSSadaf Ebrahimi\= Expect no match
2899*22dc650dSSadaf Ebrahimi    1
2900*22dc650dSSadaf Ebrahimi
2901*22dc650dSSadaf Ebrahimi/ab|cd/
2902*22dc650dSSadaf Ebrahimi    abc
2903*22dc650dSSadaf Ebrahimi    abcd
2904*22dc650dSSadaf Ebrahimi
2905*22dc650dSSadaf Ebrahimi/()ef/
2906*22dc650dSSadaf Ebrahimi    def
2907*22dc650dSSadaf Ebrahimi
2908*22dc650dSSadaf Ebrahimi/$b/
2909*22dc650dSSadaf Ebrahimi
2910*22dc650dSSadaf Ebrahimi/a\(b/
2911*22dc650dSSadaf Ebrahimi    a(b
2912*22dc650dSSadaf Ebrahimi
2913*22dc650dSSadaf Ebrahimi/a\(*b/
2914*22dc650dSSadaf Ebrahimi    ab
2915*22dc650dSSadaf Ebrahimi    a((b
2916*22dc650dSSadaf Ebrahimi
2917*22dc650dSSadaf Ebrahimi/a\\b/
2918*22dc650dSSadaf Ebrahimi    a\\b
2919*22dc650dSSadaf Ebrahimi\= Expect no match
2920*22dc650dSSadaf Ebrahimi    a\b
2921*22dc650dSSadaf Ebrahimi
2922*22dc650dSSadaf Ebrahimi/((a))/
2923*22dc650dSSadaf Ebrahimi    abc
2924*22dc650dSSadaf Ebrahimi
2925*22dc650dSSadaf Ebrahimi/(a)b(c)/
2926*22dc650dSSadaf Ebrahimi    abc
2927*22dc650dSSadaf Ebrahimi
2928*22dc650dSSadaf Ebrahimi/a+b+c/
2929*22dc650dSSadaf Ebrahimi    aabbabc
2930*22dc650dSSadaf Ebrahimi
2931*22dc650dSSadaf Ebrahimi/a{1,}b{1,}c/
2932*22dc650dSSadaf Ebrahimi    aabbabc
2933*22dc650dSSadaf Ebrahimi
2934*22dc650dSSadaf Ebrahimi/a.+?c/
2935*22dc650dSSadaf Ebrahimi    abcabc
2936*22dc650dSSadaf Ebrahimi
2937*22dc650dSSadaf Ebrahimi/(a+|b)*/
2938*22dc650dSSadaf Ebrahimi    ab
2939*22dc650dSSadaf Ebrahimi
2940*22dc650dSSadaf Ebrahimi/(a+|b){0,}/
2941*22dc650dSSadaf Ebrahimi    ab
2942*22dc650dSSadaf Ebrahimi
2943*22dc650dSSadaf Ebrahimi/(a+|b)+/
2944*22dc650dSSadaf Ebrahimi    ab
2945*22dc650dSSadaf Ebrahimi
2946*22dc650dSSadaf Ebrahimi/(a+|b){1,}/
2947*22dc650dSSadaf Ebrahimi    ab
2948*22dc650dSSadaf Ebrahimi
2949*22dc650dSSadaf Ebrahimi/(a+|b)?/
2950*22dc650dSSadaf Ebrahimi    ab
2951*22dc650dSSadaf Ebrahimi
2952*22dc650dSSadaf Ebrahimi/(a+|b){0,1}/
2953*22dc650dSSadaf Ebrahimi    ab
2954*22dc650dSSadaf Ebrahimi
2955*22dc650dSSadaf Ebrahimi/[^ab]*/
2956*22dc650dSSadaf Ebrahimi    cde
2957*22dc650dSSadaf Ebrahimi
2958*22dc650dSSadaf Ebrahimi/abc/
2959*22dc650dSSadaf Ebrahimi\= Expect no match
2960*22dc650dSSadaf Ebrahimi    b
2961*22dc650dSSadaf Ebrahimi
2962*22dc650dSSadaf Ebrahimi/a*/
2963*22dc650dSSadaf Ebrahimi
2964*22dc650dSSadaf Ebrahimi/([abc])*d/
2965*22dc650dSSadaf Ebrahimi    abbbcd
2966*22dc650dSSadaf Ebrahimi
2967*22dc650dSSadaf Ebrahimi/([abc])*bcd/
2968*22dc650dSSadaf Ebrahimi    abcd
2969*22dc650dSSadaf Ebrahimi
2970*22dc650dSSadaf Ebrahimi/a|b|c|d|e/
2971*22dc650dSSadaf Ebrahimi    e
2972*22dc650dSSadaf Ebrahimi
2973*22dc650dSSadaf Ebrahimi/(a|b|c|d|e)f/
2974*22dc650dSSadaf Ebrahimi    ef
2975*22dc650dSSadaf Ebrahimi
2976*22dc650dSSadaf Ebrahimi/abcd*efg/
2977*22dc650dSSadaf Ebrahimi    abcdefg
2978*22dc650dSSadaf Ebrahimi
2979*22dc650dSSadaf Ebrahimi/ab*/
2980*22dc650dSSadaf Ebrahimi    xabyabbbz
2981*22dc650dSSadaf Ebrahimi    xayabbbz
2982*22dc650dSSadaf Ebrahimi
2983*22dc650dSSadaf Ebrahimi/(ab|cd)e/
2984*22dc650dSSadaf Ebrahimi    abcde
2985*22dc650dSSadaf Ebrahimi
2986*22dc650dSSadaf Ebrahimi/[abhgefdc]ij/
2987*22dc650dSSadaf Ebrahimi    hij
2988*22dc650dSSadaf Ebrahimi
2989*22dc650dSSadaf Ebrahimi/^(ab|cd)e/
2990*22dc650dSSadaf Ebrahimi
2991*22dc650dSSadaf Ebrahimi/(abc|)ef/
2992*22dc650dSSadaf Ebrahimi    abcdef
2993*22dc650dSSadaf Ebrahimi
2994*22dc650dSSadaf Ebrahimi/(a|b)c*d/
2995*22dc650dSSadaf Ebrahimi    abcd
2996*22dc650dSSadaf Ebrahimi
2997*22dc650dSSadaf Ebrahimi/(ab|ab*)bc/
2998*22dc650dSSadaf Ebrahimi    abc
2999*22dc650dSSadaf Ebrahimi
3000*22dc650dSSadaf Ebrahimi/a([bc]*)c*/
3001*22dc650dSSadaf Ebrahimi    abc
3002*22dc650dSSadaf Ebrahimi
3003*22dc650dSSadaf Ebrahimi/a([bc]*)(c*d)/
3004*22dc650dSSadaf Ebrahimi    abcd
3005*22dc650dSSadaf Ebrahimi
3006*22dc650dSSadaf Ebrahimi/a([bc]+)(c*d)/
3007*22dc650dSSadaf Ebrahimi    abcd
3008*22dc650dSSadaf Ebrahimi
3009*22dc650dSSadaf Ebrahimi/a([bc]*)(c+d)/
3010*22dc650dSSadaf Ebrahimi    abcd
3011*22dc650dSSadaf Ebrahimi
3012*22dc650dSSadaf Ebrahimi/a[bcd]*dcdcde/
3013*22dc650dSSadaf Ebrahimi    adcdcde
3014*22dc650dSSadaf Ebrahimi
3015*22dc650dSSadaf Ebrahimi/a[bcd]+dcdcde/
3016*22dc650dSSadaf Ebrahimi\= Expect no match
3017*22dc650dSSadaf Ebrahimi    abcde
3018*22dc650dSSadaf Ebrahimi    adcdcde
3019*22dc650dSSadaf Ebrahimi
3020*22dc650dSSadaf Ebrahimi/(ab|a)b*c/
3021*22dc650dSSadaf Ebrahimi    abc
3022*22dc650dSSadaf Ebrahimi
3023*22dc650dSSadaf Ebrahimi/((a)(b)c)(d)/
3024*22dc650dSSadaf Ebrahimi    abcd
3025*22dc650dSSadaf Ebrahimi
3026*22dc650dSSadaf Ebrahimi/[a-zA-Z_][a-zA-Z0-9_]*/
3027*22dc650dSSadaf Ebrahimi    alpha
3028*22dc650dSSadaf Ebrahimi
3029*22dc650dSSadaf Ebrahimi/^a(bc+|b[eh])g|.h$/
3030*22dc650dSSadaf Ebrahimi    abh
3031*22dc650dSSadaf Ebrahimi
3032*22dc650dSSadaf Ebrahimi/(bc+d$|ef*g.|h?i(j|k))/
3033*22dc650dSSadaf Ebrahimi    effgz
3034*22dc650dSSadaf Ebrahimi    ij
3035*22dc650dSSadaf Ebrahimi    reffgz
3036*22dc650dSSadaf Ebrahimi\= Expect no match
3037*22dc650dSSadaf Ebrahimi    effg
3038*22dc650dSSadaf Ebrahimi    bcdd
3039*22dc650dSSadaf Ebrahimi
3040*22dc650dSSadaf Ebrahimi/((((((((((a))))))))))/
3041*22dc650dSSadaf Ebrahimi    a
3042*22dc650dSSadaf Ebrahimi
3043*22dc650dSSadaf Ebrahimi/(((((((((a)))))))))/
3044*22dc650dSSadaf Ebrahimi    a
3045*22dc650dSSadaf Ebrahimi
3046*22dc650dSSadaf Ebrahimi/multiple words of text/
3047*22dc650dSSadaf Ebrahimi\= Expect no match
3048*22dc650dSSadaf Ebrahimi    aa
3049*22dc650dSSadaf Ebrahimi    uh-uh
3050*22dc650dSSadaf Ebrahimi
3051*22dc650dSSadaf Ebrahimi/multiple words/
3052*22dc650dSSadaf Ebrahimi    multiple words, yeah
3053*22dc650dSSadaf Ebrahimi
3054*22dc650dSSadaf Ebrahimi/(.*)c(.*)/
3055*22dc650dSSadaf Ebrahimi    abcde
3056*22dc650dSSadaf Ebrahimi
3057*22dc650dSSadaf Ebrahimi/\((.*), (.*)\)/
3058*22dc650dSSadaf Ebrahimi    (a, b)
3059*22dc650dSSadaf Ebrahimi
3060*22dc650dSSadaf Ebrahimi/[k]/
3061*22dc650dSSadaf Ebrahimi
3062*22dc650dSSadaf Ebrahimi/abcd/
3063*22dc650dSSadaf Ebrahimi    abcd
3064*22dc650dSSadaf Ebrahimi
3065*22dc650dSSadaf Ebrahimi/a(bc)d/
3066*22dc650dSSadaf Ebrahimi    abcd
3067*22dc650dSSadaf Ebrahimi
3068*22dc650dSSadaf Ebrahimi/a[-]?c/
3069*22dc650dSSadaf Ebrahimi    ac
3070*22dc650dSSadaf Ebrahimi
3071*22dc650dSSadaf Ebrahimi/abc/i
3072*22dc650dSSadaf Ebrahimi    ABC
3073*22dc650dSSadaf Ebrahimi    XABCY
3074*22dc650dSSadaf Ebrahimi    ABABC
3075*22dc650dSSadaf Ebrahimi\= Expect no match
3076*22dc650dSSadaf Ebrahimi    aaxabxbaxbbx
3077*22dc650dSSadaf Ebrahimi    XBC
3078*22dc650dSSadaf Ebrahimi    AXC
3079*22dc650dSSadaf Ebrahimi    ABX
3080*22dc650dSSadaf Ebrahimi
3081*22dc650dSSadaf Ebrahimi/ab*c/i
3082*22dc650dSSadaf Ebrahimi    ABC
3083*22dc650dSSadaf Ebrahimi
3084*22dc650dSSadaf Ebrahimi/ab*bc/i
3085*22dc650dSSadaf Ebrahimi    ABC
3086*22dc650dSSadaf Ebrahimi    ABBC
3087*22dc650dSSadaf Ebrahimi
3088*22dc650dSSadaf Ebrahimi/ab*?bc/i
3089*22dc650dSSadaf Ebrahimi    ABBBBC
3090*22dc650dSSadaf Ebrahimi
3091*22dc650dSSadaf Ebrahimi/ab{0,}?bc/i
3092*22dc650dSSadaf Ebrahimi    ABBBBC
3093*22dc650dSSadaf Ebrahimi
3094*22dc650dSSadaf Ebrahimi/ab+?bc/i
3095*22dc650dSSadaf Ebrahimi    ABBC
3096*22dc650dSSadaf Ebrahimi
3097*22dc650dSSadaf Ebrahimi/ab+bc/i
3098*22dc650dSSadaf Ebrahimi\= Expect no match
3099*22dc650dSSadaf Ebrahimi    ABC
3100*22dc650dSSadaf Ebrahimi    ABQ
3101*22dc650dSSadaf Ebrahimi
3102*22dc650dSSadaf Ebrahimi/ab{1,}bc/i
3103*22dc650dSSadaf Ebrahimi
3104*22dc650dSSadaf Ebrahimi/ab+bc/i
3105*22dc650dSSadaf Ebrahimi    ABBBBC
3106*22dc650dSSadaf Ebrahimi
3107*22dc650dSSadaf Ebrahimi/ab{1,}?bc/i
3108*22dc650dSSadaf Ebrahimi    ABBBBC
3109*22dc650dSSadaf Ebrahimi
3110*22dc650dSSadaf Ebrahimi/ab{1,3}?bc/i
3111*22dc650dSSadaf Ebrahimi    ABBBBC
3112*22dc650dSSadaf Ebrahimi
3113*22dc650dSSadaf Ebrahimi/ab{3,4}?bc/i
3114*22dc650dSSadaf Ebrahimi    ABBBBC
3115*22dc650dSSadaf Ebrahimi
3116*22dc650dSSadaf Ebrahimi/ab{4,5}?bc/i
3117*22dc650dSSadaf Ebrahimi\= Expect no match
3118*22dc650dSSadaf Ebrahimi    ABQ
3119*22dc650dSSadaf Ebrahimi    ABBBBC
3120*22dc650dSSadaf Ebrahimi
3121*22dc650dSSadaf Ebrahimi/ab??bc/i
3122*22dc650dSSadaf Ebrahimi    ABBC
3123*22dc650dSSadaf Ebrahimi    ABC
3124*22dc650dSSadaf Ebrahimi
3125*22dc650dSSadaf Ebrahimi/ab{0,1}?bc/i
3126*22dc650dSSadaf Ebrahimi    ABC
3127*22dc650dSSadaf Ebrahimi
3128*22dc650dSSadaf Ebrahimi/ab??bc/i
3129*22dc650dSSadaf Ebrahimi
3130*22dc650dSSadaf Ebrahimi/ab??c/i
3131*22dc650dSSadaf Ebrahimi    ABC
3132*22dc650dSSadaf Ebrahimi
3133*22dc650dSSadaf Ebrahimi/ab{0,1}?c/i
3134*22dc650dSSadaf Ebrahimi    ABC
3135*22dc650dSSadaf Ebrahimi
3136*22dc650dSSadaf Ebrahimi/^abc$/i
3137*22dc650dSSadaf Ebrahimi    ABC
3138*22dc650dSSadaf Ebrahimi\= Expect no match
3139*22dc650dSSadaf Ebrahimi    ABBBBC
3140*22dc650dSSadaf Ebrahimi    ABCC
3141*22dc650dSSadaf Ebrahimi
3142*22dc650dSSadaf Ebrahimi/^abc/i
3143*22dc650dSSadaf Ebrahimi    ABCC
3144*22dc650dSSadaf Ebrahimi
3145*22dc650dSSadaf Ebrahimi/^abc$/i
3146*22dc650dSSadaf Ebrahimi
3147*22dc650dSSadaf Ebrahimi/abc$/i
3148*22dc650dSSadaf Ebrahimi    AABC
3149*22dc650dSSadaf Ebrahimi
3150*22dc650dSSadaf Ebrahimi/^/i
3151*22dc650dSSadaf Ebrahimi    ABC
3152*22dc650dSSadaf Ebrahimi
3153*22dc650dSSadaf Ebrahimi/$/i
3154*22dc650dSSadaf Ebrahimi    ABC
3155*22dc650dSSadaf Ebrahimi
3156*22dc650dSSadaf Ebrahimi/a.c/i
3157*22dc650dSSadaf Ebrahimi    ABC
3158*22dc650dSSadaf Ebrahimi    AXC
3159*22dc650dSSadaf Ebrahimi
3160*22dc650dSSadaf Ebrahimi/a.*?c/i
3161*22dc650dSSadaf Ebrahimi    AXYZC
3162*22dc650dSSadaf Ebrahimi
3163*22dc650dSSadaf Ebrahimi/a.*c/i
3164*22dc650dSSadaf Ebrahimi    AABC
3165*22dc650dSSadaf Ebrahimi\= Expect no match
3166*22dc650dSSadaf Ebrahimi    AXYZD
3167*22dc650dSSadaf Ebrahimi
3168*22dc650dSSadaf Ebrahimi/a[bc]d/i
3169*22dc650dSSadaf Ebrahimi    ABD
3170*22dc650dSSadaf Ebrahimi
3171*22dc650dSSadaf Ebrahimi/a[b-d]e/i
3172*22dc650dSSadaf Ebrahimi    ACE
3173*22dc650dSSadaf Ebrahimi\= Expect no match
3174*22dc650dSSadaf Ebrahimi    ABC
3175*22dc650dSSadaf Ebrahimi    ABD
3176*22dc650dSSadaf Ebrahimi
3177*22dc650dSSadaf Ebrahimi/a[b-d]/i
3178*22dc650dSSadaf Ebrahimi    AAC
3179*22dc650dSSadaf Ebrahimi
3180*22dc650dSSadaf Ebrahimi/a[-b]/i
3181*22dc650dSSadaf Ebrahimi    A-
3182*22dc650dSSadaf Ebrahimi
3183*22dc650dSSadaf Ebrahimi/a[b-]/i
3184*22dc650dSSadaf Ebrahimi    A-
3185*22dc650dSSadaf Ebrahimi
3186*22dc650dSSadaf Ebrahimi/a]/i
3187*22dc650dSSadaf Ebrahimi    A]
3188*22dc650dSSadaf Ebrahimi
3189*22dc650dSSadaf Ebrahimi/a[]]b/i
3190*22dc650dSSadaf Ebrahimi    A]B
3191*22dc650dSSadaf Ebrahimi
3192*22dc650dSSadaf Ebrahimi/a[^bc]d/i
3193*22dc650dSSadaf Ebrahimi    AED
3194*22dc650dSSadaf Ebrahimi
3195*22dc650dSSadaf Ebrahimi/a[^-b]c/i
3196*22dc650dSSadaf Ebrahimi    ADC
3197*22dc650dSSadaf Ebrahimi\= Expect no match
3198*22dc650dSSadaf Ebrahimi    ABD
3199*22dc650dSSadaf Ebrahimi    A-C
3200*22dc650dSSadaf Ebrahimi
3201*22dc650dSSadaf Ebrahimi/a[^]b]c/i
3202*22dc650dSSadaf Ebrahimi    ADC
3203*22dc650dSSadaf Ebrahimi
3204*22dc650dSSadaf Ebrahimi/ab|cd/i
3205*22dc650dSSadaf Ebrahimi    ABC
3206*22dc650dSSadaf Ebrahimi    ABCD
3207*22dc650dSSadaf Ebrahimi
3208*22dc650dSSadaf Ebrahimi/()ef/i
3209*22dc650dSSadaf Ebrahimi    DEF
3210*22dc650dSSadaf Ebrahimi
3211*22dc650dSSadaf Ebrahimi/$b/i
3212*22dc650dSSadaf Ebrahimi\= Expect no match
3213*22dc650dSSadaf Ebrahimi    A]C
3214*22dc650dSSadaf Ebrahimi    B
3215*22dc650dSSadaf Ebrahimi
3216*22dc650dSSadaf Ebrahimi/a\(b/i
3217*22dc650dSSadaf Ebrahimi    A(B
3218*22dc650dSSadaf Ebrahimi
3219*22dc650dSSadaf Ebrahimi/a\(*b/i
3220*22dc650dSSadaf Ebrahimi    AB
3221*22dc650dSSadaf Ebrahimi    A((B
3222*22dc650dSSadaf Ebrahimi
3223*22dc650dSSadaf Ebrahimi/a\\b/i
3224*22dc650dSSadaf Ebrahimi\= Expect no match
3225*22dc650dSSadaf Ebrahimi    A\=notbol
3226*22dc650dSSadaf Ebrahimi
3227*22dc650dSSadaf Ebrahimi/((a))/i
3228*22dc650dSSadaf Ebrahimi    ABC
3229*22dc650dSSadaf Ebrahimi
3230*22dc650dSSadaf Ebrahimi/(a)b(c)/i
3231*22dc650dSSadaf Ebrahimi    ABC
3232*22dc650dSSadaf Ebrahimi
3233*22dc650dSSadaf Ebrahimi/a+b+c/i
3234*22dc650dSSadaf Ebrahimi    AABBABC
3235*22dc650dSSadaf Ebrahimi
3236*22dc650dSSadaf Ebrahimi/a{1,}b{1,}c/i
3237*22dc650dSSadaf Ebrahimi    AABBABC
3238*22dc650dSSadaf Ebrahimi
3239*22dc650dSSadaf Ebrahimi/a.+?c/i
3240*22dc650dSSadaf Ebrahimi    ABCABC
3241*22dc650dSSadaf Ebrahimi
3242*22dc650dSSadaf Ebrahimi/a.*?c/i
3243*22dc650dSSadaf Ebrahimi    ABCABC
3244*22dc650dSSadaf Ebrahimi
3245*22dc650dSSadaf Ebrahimi/a.{0,5}?c/i
3246*22dc650dSSadaf Ebrahimi    ABCABC
3247*22dc650dSSadaf Ebrahimi
3248*22dc650dSSadaf Ebrahimi/(a+|b)*/i
3249*22dc650dSSadaf Ebrahimi    AB
3250*22dc650dSSadaf Ebrahimi
3251*22dc650dSSadaf Ebrahimi/(a+|b){0,}/i
3252*22dc650dSSadaf Ebrahimi    AB
3253*22dc650dSSadaf Ebrahimi
3254*22dc650dSSadaf Ebrahimi/(a+|b)+/i
3255*22dc650dSSadaf Ebrahimi    AB
3256*22dc650dSSadaf Ebrahimi
3257*22dc650dSSadaf Ebrahimi/(a+|b){1,}/i
3258*22dc650dSSadaf Ebrahimi    AB
3259*22dc650dSSadaf Ebrahimi
3260*22dc650dSSadaf Ebrahimi/(a+|b)?/i
3261*22dc650dSSadaf Ebrahimi    AB
3262*22dc650dSSadaf Ebrahimi
3263*22dc650dSSadaf Ebrahimi/(a+|b){0,1}/i
3264*22dc650dSSadaf Ebrahimi    AB
3265*22dc650dSSadaf Ebrahimi
3266*22dc650dSSadaf Ebrahimi/(a+|b){0,1}?/i
3267*22dc650dSSadaf Ebrahimi    AB
3268*22dc650dSSadaf Ebrahimi
3269*22dc650dSSadaf Ebrahimi/[^ab]*/i
3270*22dc650dSSadaf Ebrahimi    CDE
3271*22dc650dSSadaf Ebrahimi
3272*22dc650dSSadaf Ebrahimi/abc/i
3273*22dc650dSSadaf Ebrahimi
3274*22dc650dSSadaf Ebrahimi/a*/i
3275*22dc650dSSadaf Ebrahimi
3276*22dc650dSSadaf Ebrahimi/([abc])*d/i
3277*22dc650dSSadaf Ebrahimi    ABBBCD
3278*22dc650dSSadaf Ebrahimi
3279*22dc650dSSadaf Ebrahimi/([abc])*bcd/i
3280*22dc650dSSadaf Ebrahimi    ABCD
3281*22dc650dSSadaf Ebrahimi
3282*22dc650dSSadaf Ebrahimi/a|b|c|d|e/i
3283*22dc650dSSadaf Ebrahimi    E
3284*22dc650dSSadaf Ebrahimi
3285*22dc650dSSadaf Ebrahimi/(a|b|c|d|e)f/i
3286*22dc650dSSadaf Ebrahimi    EF
3287*22dc650dSSadaf Ebrahimi
3288*22dc650dSSadaf Ebrahimi/abcd*efg/i
3289*22dc650dSSadaf Ebrahimi    ABCDEFG
3290*22dc650dSSadaf Ebrahimi
3291*22dc650dSSadaf Ebrahimi/ab*/i
3292*22dc650dSSadaf Ebrahimi    XABYABBBZ
3293*22dc650dSSadaf Ebrahimi    XAYABBBZ
3294*22dc650dSSadaf Ebrahimi
3295*22dc650dSSadaf Ebrahimi/(ab|cd)e/i
3296*22dc650dSSadaf Ebrahimi    ABCDE
3297*22dc650dSSadaf Ebrahimi
3298*22dc650dSSadaf Ebrahimi/[abhgefdc]ij/i
3299*22dc650dSSadaf Ebrahimi    HIJ
3300*22dc650dSSadaf Ebrahimi
3301*22dc650dSSadaf Ebrahimi/^(ab|cd)e/i
3302*22dc650dSSadaf Ebrahimi\= Expect no match
3303*22dc650dSSadaf Ebrahimi    ABCDE
3304*22dc650dSSadaf Ebrahimi
3305*22dc650dSSadaf Ebrahimi/(abc|)ef/i
3306*22dc650dSSadaf Ebrahimi    ABCDEF
3307*22dc650dSSadaf Ebrahimi
3308*22dc650dSSadaf Ebrahimi/(a|b)c*d/i
3309*22dc650dSSadaf Ebrahimi    ABCD
3310*22dc650dSSadaf Ebrahimi
3311*22dc650dSSadaf Ebrahimi/(ab|ab*)bc/i
3312*22dc650dSSadaf Ebrahimi    ABC
3313*22dc650dSSadaf Ebrahimi
3314*22dc650dSSadaf Ebrahimi/a([bc]*)c*/i
3315*22dc650dSSadaf Ebrahimi    ABC
3316*22dc650dSSadaf Ebrahimi
3317*22dc650dSSadaf Ebrahimi/a([bc]*)(c*d)/i
3318*22dc650dSSadaf Ebrahimi    ABCD
3319*22dc650dSSadaf Ebrahimi
3320*22dc650dSSadaf Ebrahimi/a([bc]+)(c*d)/i
3321*22dc650dSSadaf Ebrahimi    ABCD
3322*22dc650dSSadaf Ebrahimi
3323*22dc650dSSadaf Ebrahimi/a([bc]*)(c+d)/i
3324*22dc650dSSadaf Ebrahimi    ABCD
3325*22dc650dSSadaf Ebrahimi
3326*22dc650dSSadaf Ebrahimi/a[bcd]*dcdcde/i
3327*22dc650dSSadaf Ebrahimi    ADCDCDE
3328*22dc650dSSadaf Ebrahimi
3329*22dc650dSSadaf Ebrahimi/a[bcd]+dcdcde/i
3330*22dc650dSSadaf Ebrahimi
3331*22dc650dSSadaf Ebrahimi/(ab|a)b*c/i
3332*22dc650dSSadaf Ebrahimi    ABC
3333*22dc650dSSadaf Ebrahimi
3334*22dc650dSSadaf Ebrahimi/((a)(b)c)(d)/i
3335*22dc650dSSadaf Ebrahimi    ABCD
3336*22dc650dSSadaf Ebrahimi
3337*22dc650dSSadaf Ebrahimi/[a-zA-Z_][a-zA-Z0-9_]*/i
3338*22dc650dSSadaf Ebrahimi    ALPHA
3339*22dc650dSSadaf Ebrahimi
3340*22dc650dSSadaf Ebrahimi/^a(bc+|b[eh])g|.h$/i
3341*22dc650dSSadaf Ebrahimi    ABH
3342*22dc650dSSadaf Ebrahimi
3343*22dc650dSSadaf Ebrahimi/(bc+d$|ef*g.|h?i(j|k))/i
3344*22dc650dSSadaf Ebrahimi    EFFGZ
3345*22dc650dSSadaf Ebrahimi    IJ
3346*22dc650dSSadaf Ebrahimi    REFFGZ
3347*22dc650dSSadaf Ebrahimi\= Expect no match
3348*22dc650dSSadaf Ebrahimi    ADCDCDE
3349*22dc650dSSadaf Ebrahimi    EFFG
3350*22dc650dSSadaf Ebrahimi    BCDD
3351*22dc650dSSadaf Ebrahimi
3352*22dc650dSSadaf Ebrahimi/((((((((((a))))))))))/i
3353*22dc650dSSadaf Ebrahimi    A
3354*22dc650dSSadaf Ebrahimi
3355*22dc650dSSadaf Ebrahimi/(((((((((a)))))))))/i
3356*22dc650dSSadaf Ebrahimi    A
3357*22dc650dSSadaf Ebrahimi
3358*22dc650dSSadaf Ebrahimi/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
3359*22dc650dSSadaf Ebrahimi    A
3360*22dc650dSSadaf Ebrahimi
3361*22dc650dSSadaf Ebrahimi/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
3362*22dc650dSSadaf Ebrahimi    C
3363*22dc650dSSadaf Ebrahimi
3364*22dc650dSSadaf Ebrahimi/multiple words of text/i
3365*22dc650dSSadaf Ebrahimi\= Expect no match
3366*22dc650dSSadaf Ebrahimi    AA
3367*22dc650dSSadaf Ebrahimi    UH-UH
3368*22dc650dSSadaf Ebrahimi
3369*22dc650dSSadaf Ebrahimi/multiple words/i
3370*22dc650dSSadaf Ebrahimi    MULTIPLE WORDS, YEAH
3371*22dc650dSSadaf Ebrahimi
3372*22dc650dSSadaf Ebrahimi/(.*)c(.*)/i
3373*22dc650dSSadaf Ebrahimi    ABCDE
3374*22dc650dSSadaf Ebrahimi
3375*22dc650dSSadaf Ebrahimi/\((.*), (.*)\)/i
3376*22dc650dSSadaf Ebrahimi    (A, B)
3377*22dc650dSSadaf Ebrahimi
3378*22dc650dSSadaf Ebrahimi/[k]/i
3379*22dc650dSSadaf Ebrahimi
3380*22dc650dSSadaf Ebrahimi/abcd/i
3381*22dc650dSSadaf Ebrahimi    ABCD
3382*22dc650dSSadaf Ebrahimi
3383*22dc650dSSadaf Ebrahimi/a(bc)d/i
3384*22dc650dSSadaf Ebrahimi    ABCD
3385*22dc650dSSadaf Ebrahimi
3386*22dc650dSSadaf Ebrahimi/a[-]?c/i
3387*22dc650dSSadaf Ebrahimi    AC
3388*22dc650dSSadaf Ebrahimi
3389*22dc650dSSadaf Ebrahimi/a(?!b)./
3390*22dc650dSSadaf Ebrahimi    abad
3391*22dc650dSSadaf Ebrahimi
3392*22dc650dSSadaf Ebrahimi/a(?=d)./
3393*22dc650dSSadaf Ebrahimi    abad
3394*22dc650dSSadaf Ebrahimi
3395*22dc650dSSadaf Ebrahimi/a(?=c|d)./
3396*22dc650dSSadaf Ebrahimi    abad
3397*22dc650dSSadaf Ebrahimi
3398*22dc650dSSadaf Ebrahimi/a(?:b|c|d)(.)/
3399*22dc650dSSadaf Ebrahimi    ace
3400*22dc650dSSadaf Ebrahimi
3401*22dc650dSSadaf Ebrahimi/a(?:b|c|d)*(.)/
3402*22dc650dSSadaf Ebrahimi    ace
3403*22dc650dSSadaf Ebrahimi
3404*22dc650dSSadaf Ebrahimi/a(?:b|c|d)+?(.)/
3405*22dc650dSSadaf Ebrahimi    ace
3406*22dc650dSSadaf Ebrahimi    acdbcdbe
3407*22dc650dSSadaf Ebrahimi
3408*22dc650dSSadaf Ebrahimi/a(?:b|c|d)+(.)/
3409*22dc650dSSadaf Ebrahimi    acdbcdbe
3410*22dc650dSSadaf Ebrahimi
3411*22dc650dSSadaf Ebrahimi/a(?:b|c|d){2}(.)/
3412*22dc650dSSadaf Ebrahimi    acdbcdbe
3413*22dc650dSSadaf Ebrahimi
3414*22dc650dSSadaf Ebrahimi/a(?:b|c|d){4,5}(.)/
3415*22dc650dSSadaf Ebrahimi    acdbcdbe
3416*22dc650dSSadaf Ebrahimi
3417*22dc650dSSadaf Ebrahimi/a(?:b|c|d){4,5}?(.)/
3418*22dc650dSSadaf Ebrahimi    acdbcdbe
3419*22dc650dSSadaf Ebrahimi
3420*22dc650dSSadaf Ebrahimi/((foo)|(bar))*/
3421*22dc650dSSadaf Ebrahimi    foobar
3422*22dc650dSSadaf Ebrahimi
3423*22dc650dSSadaf Ebrahimi/a(?:b|c|d){6,7}(.)/
3424*22dc650dSSadaf Ebrahimi    acdbcdbe
3425*22dc650dSSadaf Ebrahimi
3426*22dc650dSSadaf Ebrahimi/a(?:b|c|d){6,7}?(.)/
3427*22dc650dSSadaf Ebrahimi    acdbcdbe
3428*22dc650dSSadaf Ebrahimi
3429*22dc650dSSadaf Ebrahimi/a(?:b|c|d){5,6}(.)/
3430*22dc650dSSadaf Ebrahimi    acdbcdbe
3431*22dc650dSSadaf Ebrahimi
3432*22dc650dSSadaf Ebrahimi/a(?:b|c|d){5,6}?(.)/
3433*22dc650dSSadaf Ebrahimi    acdbcdbe
3434*22dc650dSSadaf Ebrahimi
3435*22dc650dSSadaf Ebrahimi/a(?:b|c|d){5,7}(.)/
3436*22dc650dSSadaf Ebrahimi    acdbcdbe
3437*22dc650dSSadaf Ebrahimi
3438*22dc650dSSadaf Ebrahimi/a(?:b|c|d){5,7}?(.)/
3439*22dc650dSSadaf Ebrahimi    acdbcdbe
3440*22dc650dSSadaf Ebrahimi
3441*22dc650dSSadaf Ebrahimi/a(?:b|(c|e){1,2}?|d)+?(.)/
3442*22dc650dSSadaf Ebrahimi    ace
3443*22dc650dSSadaf Ebrahimi
3444*22dc650dSSadaf Ebrahimi/^(.+)?B/
3445*22dc650dSSadaf Ebrahimi    AB
3446*22dc650dSSadaf Ebrahimi
3447*22dc650dSSadaf Ebrahimi/^([^a-z])|(\^)$/
3448*22dc650dSSadaf Ebrahimi    .
3449*22dc650dSSadaf Ebrahimi
3450*22dc650dSSadaf Ebrahimi/^[<>]&/
3451*22dc650dSSadaf Ebrahimi    <&OUT
3452*22dc650dSSadaf Ebrahimi
3453*22dc650dSSadaf Ebrahimi/(?:(f)(o)(o)|(b)(a)(r))*/
3454*22dc650dSSadaf Ebrahimi    foobar
3455*22dc650dSSadaf Ebrahimi
3456*22dc650dSSadaf Ebrahimi/(?<=a)b/
3457*22dc650dSSadaf Ebrahimi    ab
3458*22dc650dSSadaf Ebrahimi\= Expect no match
3459*22dc650dSSadaf Ebrahimi    cb
3460*22dc650dSSadaf Ebrahimi    b
3461*22dc650dSSadaf Ebrahimi
3462*22dc650dSSadaf Ebrahimi/(?<!c)b/
3463*22dc650dSSadaf Ebrahimi    ab
3464*22dc650dSSadaf Ebrahimi    b
3465*22dc650dSSadaf Ebrahimi    b
3466*22dc650dSSadaf Ebrahimi
3467*22dc650dSSadaf Ebrahimi/(?:..)*a/
3468*22dc650dSSadaf Ebrahimi    aba
3469*22dc650dSSadaf Ebrahimi
3470*22dc650dSSadaf Ebrahimi/(?:..)*?a/
3471*22dc650dSSadaf Ebrahimi    aba
3472*22dc650dSSadaf Ebrahimi
3473*22dc650dSSadaf Ebrahimi/^(){3,5}/
3474*22dc650dSSadaf Ebrahimi    abc
3475*22dc650dSSadaf Ebrahimi
3476*22dc650dSSadaf Ebrahimi/^(a+)*ax/
3477*22dc650dSSadaf Ebrahimi    aax
3478*22dc650dSSadaf Ebrahimi
3479*22dc650dSSadaf Ebrahimi/^((a|b)+)*ax/
3480*22dc650dSSadaf Ebrahimi    aax
3481*22dc650dSSadaf Ebrahimi
3482*22dc650dSSadaf Ebrahimi/^((a|bc)+)*ax/
3483*22dc650dSSadaf Ebrahimi    aax
3484*22dc650dSSadaf Ebrahimi
3485*22dc650dSSadaf Ebrahimi/(a|x)*ab/
3486*22dc650dSSadaf Ebrahimi    cab
3487*22dc650dSSadaf Ebrahimi
3488*22dc650dSSadaf Ebrahimi/(a)*ab/
3489*22dc650dSSadaf Ebrahimi    cab
3490*22dc650dSSadaf Ebrahimi
3491*22dc650dSSadaf Ebrahimi/(?:(?i)a)b/
3492*22dc650dSSadaf Ebrahimi    ab
3493*22dc650dSSadaf Ebrahimi
3494*22dc650dSSadaf Ebrahimi/((?i)a)b/
3495*22dc650dSSadaf Ebrahimi    ab
3496*22dc650dSSadaf Ebrahimi
3497*22dc650dSSadaf Ebrahimi/(?:(?i)a)b/
3498*22dc650dSSadaf Ebrahimi    Ab
3499*22dc650dSSadaf Ebrahimi
3500*22dc650dSSadaf Ebrahimi/((?i)a)b/
3501*22dc650dSSadaf Ebrahimi    Ab
3502*22dc650dSSadaf Ebrahimi
3503*22dc650dSSadaf Ebrahimi/(?:(?i)a)b/
3504*22dc650dSSadaf Ebrahimi\= Expect no match
3505*22dc650dSSadaf Ebrahimi    cb
3506*22dc650dSSadaf Ebrahimi    aB
3507*22dc650dSSadaf Ebrahimi
3508*22dc650dSSadaf Ebrahimi/((?i)a)b/
3509*22dc650dSSadaf Ebrahimi
3510*22dc650dSSadaf Ebrahimi/(?i:a)b/
3511*22dc650dSSadaf Ebrahimi    ab
3512*22dc650dSSadaf Ebrahimi
3513*22dc650dSSadaf Ebrahimi/((?i:a))b/
3514*22dc650dSSadaf Ebrahimi    ab
3515*22dc650dSSadaf Ebrahimi
3516*22dc650dSSadaf Ebrahimi/(?i:a)b/
3517*22dc650dSSadaf Ebrahimi    Ab
3518*22dc650dSSadaf Ebrahimi
3519*22dc650dSSadaf Ebrahimi/((?i:a))b/
3520*22dc650dSSadaf Ebrahimi    Ab
3521*22dc650dSSadaf Ebrahimi
3522*22dc650dSSadaf Ebrahimi/(?i:a)b/
3523*22dc650dSSadaf Ebrahimi\= Expect no match
3524*22dc650dSSadaf Ebrahimi    aB
3525*22dc650dSSadaf Ebrahimi    aB
3526*22dc650dSSadaf Ebrahimi
3527*22dc650dSSadaf Ebrahimi/((?i:a))b/
3528*22dc650dSSadaf Ebrahimi
3529*22dc650dSSadaf Ebrahimi/(?:(?-i)a)b/i
3530*22dc650dSSadaf Ebrahimi    ab
3531*22dc650dSSadaf Ebrahimi
3532*22dc650dSSadaf Ebrahimi/((?-i)a)b/i
3533*22dc650dSSadaf Ebrahimi    ab
3534*22dc650dSSadaf Ebrahimi
3535*22dc650dSSadaf Ebrahimi/(?:(?-i)a)b/i
3536*22dc650dSSadaf Ebrahimi    aB
3537*22dc650dSSadaf Ebrahimi
3538*22dc650dSSadaf Ebrahimi/((?-i)a)b/i
3539*22dc650dSSadaf Ebrahimi    aB
3540*22dc650dSSadaf Ebrahimi
3541*22dc650dSSadaf Ebrahimi/(?:(?-i)a)b/i
3542*22dc650dSSadaf Ebrahimi    aB
3543*22dc650dSSadaf Ebrahimi\= Expect no match
3544*22dc650dSSadaf Ebrahimi    Ab
3545*22dc650dSSadaf Ebrahimi
3546*22dc650dSSadaf Ebrahimi/((?-i)a)b/i
3547*22dc650dSSadaf Ebrahimi
3548*22dc650dSSadaf Ebrahimi/(?:(?-i)a)b/i
3549*22dc650dSSadaf Ebrahimi    aB
3550*22dc650dSSadaf Ebrahimi
3551*22dc650dSSadaf Ebrahimi/((?-i)a)b/i
3552*22dc650dSSadaf Ebrahimi    aB
3553*22dc650dSSadaf Ebrahimi
3554*22dc650dSSadaf Ebrahimi/(?:(?-i)a)b/i
3555*22dc650dSSadaf Ebrahimi\= Expect no match
3556*22dc650dSSadaf Ebrahimi    Ab
3557*22dc650dSSadaf Ebrahimi    AB
3558*22dc650dSSadaf Ebrahimi
3559*22dc650dSSadaf Ebrahimi/((?-i)a)b/i
3560*22dc650dSSadaf Ebrahimi
3561*22dc650dSSadaf Ebrahimi/(?-i:a)b/i
3562*22dc650dSSadaf Ebrahimi    ab
3563*22dc650dSSadaf Ebrahimi
3564*22dc650dSSadaf Ebrahimi/((?-i:a))b/i
3565*22dc650dSSadaf Ebrahimi    ab
3566*22dc650dSSadaf Ebrahimi
3567*22dc650dSSadaf Ebrahimi/(?-i:a)b/i
3568*22dc650dSSadaf Ebrahimi    aB
3569*22dc650dSSadaf Ebrahimi
3570*22dc650dSSadaf Ebrahimi/((?-i:a))b/i
3571*22dc650dSSadaf Ebrahimi    aB
3572*22dc650dSSadaf Ebrahimi
3573*22dc650dSSadaf Ebrahimi/(?-i:a)b/i
3574*22dc650dSSadaf Ebrahimi\= Expect no match
3575*22dc650dSSadaf Ebrahimi    AB
3576*22dc650dSSadaf Ebrahimi    Ab
3577*22dc650dSSadaf Ebrahimi
3578*22dc650dSSadaf Ebrahimi/((?-i:a))b/i
3579*22dc650dSSadaf Ebrahimi
3580*22dc650dSSadaf Ebrahimi/(?-i:a)b/i
3581*22dc650dSSadaf Ebrahimi    aB
3582*22dc650dSSadaf Ebrahimi
3583*22dc650dSSadaf Ebrahimi/((?-i:a))b/i
3584*22dc650dSSadaf Ebrahimi    aB
3585*22dc650dSSadaf Ebrahimi
3586*22dc650dSSadaf Ebrahimi/(?-i:a)b/i
3587*22dc650dSSadaf Ebrahimi\= Expect no match
3588*22dc650dSSadaf Ebrahimi    Ab
3589*22dc650dSSadaf Ebrahimi    AB
3590*22dc650dSSadaf Ebrahimi
3591*22dc650dSSadaf Ebrahimi/((?-i:a))b/i
3592*22dc650dSSadaf Ebrahimi
3593*22dc650dSSadaf Ebrahimi/((?-i:a.))b/i
3594*22dc650dSSadaf Ebrahimi\= Expect no match
3595*22dc650dSSadaf Ebrahimi    AB
3596*22dc650dSSadaf Ebrahimi    a\nB
3597*22dc650dSSadaf Ebrahimi
3598*22dc650dSSadaf Ebrahimi/((?s-i:a.))b/i
3599*22dc650dSSadaf Ebrahimi    a\nB
3600*22dc650dSSadaf Ebrahimi
3601*22dc650dSSadaf Ebrahimi/(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
3602*22dc650dSSadaf Ebrahimi    cabbbb
3603*22dc650dSSadaf Ebrahimi
3604*22dc650dSSadaf Ebrahimi/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
3605*22dc650dSSadaf Ebrahimi    caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
3606*22dc650dSSadaf Ebrahimi
3607*22dc650dSSadaf Ebrahimi/foo\w*\d{4}baz/
3608*22dc650dSSadaf Ebrahimi    foobar1234baz
3609*22dc650dSSadaf Ebrahimi
3610*22dc650dSSadaf Ebrahimi/x(~~)*(?:(?:F)?)?/
3611*22dc650dSSadaf Ebrahimi    x~~
3612*22dc650dSSadaf Ebrahimi
3613*22dc650dSSadaf Ebrahimi/^a(?#xxx){3}c/
3614*22dc650dSSadaf Ebrahimi    aaac
3615*22dc650dSSadaf Ebrahimi
3616*22dc650dSSadaf Ebrahimi/^a (?#xxx) (?#yyy) {3}c/x
3617*22dc650dSSadaf Ebrahimi    aaac
3618*22dc650dSSadaf Ebrahimi
3619*22dc650dSSadaf Ebrahimi/(?<![cd])b/
3620*22dc650dSSadaf Ebrahimi\= Expect no match
3621*22dc650dSSadaf Ebrahimi    B\nB
3622*22dc650dSSadaf Ebrahimi    dbcb
3623*22dc650dSSadaf Ebrahimi
3624*22dc650dSSadaf Ebrahimi/(?<![cd])[ab]/
3625*22dc650dSSadaf Ebrahimi    dbaacb
3626*22dc650dSSadaf Ebrahimi
3627*22dc650dSSadaf Ebrahimi/(?<!(c|d))b/
3628*22dc650dSSadaf Ebrahimi
3629*22dc650dSSadaf Ebrahimi/(?<!(c|d))[ab]/
3630*22dc650dSSadaf Ebrahimi    dbaacb
3631*22dc650dSSadaf Ebrahimi
3632*22dc650dSSadaf Ebrahimi/(?<!cd)[ab]/
3633*22dc650dSSadaf Ebrahimi    cdaccb
3634*22dc650dSSadaf Ebrahimi
3635*22dc650dSSadaf Ebrahimi/^(?:a?b?)*$/
3636*22dc650dSSadaf Ebrahimi\= Expect no match
3637*22dc650dSSadaf Ebrahimi    dbcb
3638*22dc650dSSadaf Ebrahimi    a--
3639*22dc650dSSadaf Ebrahimi
3640*22dc650dSSadaf Ebrahimi/((?s)^a(.))((?m)^b$)/
3641*22dc650dSSadaf Ebrahimi    a\nb\nc\n
3642*22dc650dSSadaf Ebrahimi
3643*22dc650dSSadaf Ebrahimi/((?m)^b$)/
3644*22dc650dSSadaf Ebrahimi    a\nb\nc\n
3645*22dc650dSSadaf Ebrahimi
3646*22dc650dSSadaf Ebrahimi/(?m)^b/
3647*22dc650dSSadaf Ebrahimi    a\nb\n
3648*22dc650dSSadaf Ebrahimi
3649*22dc650dSSadaf Ebrahimi/(?m)^(b)/
3650*22dc650dSSadaf Ebrahimi    a\nb\n
3651*22dc650dSSadaf Ebrahimi
3652*22dc650dSSadaf Ebrahimi/((?m)^b)/
3653*22dc650dSSadaf Ebrahimi    a\nb\n
3654*22dc650dSSadaf Ebrahimi
3655*22dc650dSSadaf Ebrahimi/\n((?m)^b)/
3656*22dc650dSSadaf Ebrahimi    a\nb\n
3657*22dc650dSSadaf Ebrahimi
3658*22dc650dSSadaf Ebrahimi/((?s).)c(?!.)/
3659*22dc650dSSadaf Ebrahimi    a\nb\nc\n
3660*22dc650dSSadaf Ebrahimi    a\nb\nc\n
3661*22dc650dSSadaf Ebrahimi
3662*22dc650dSSadaf Ebrahimi/((?s)b.)c(?!.)/
3663*22dc650dSSadaf Ebrahimi    a\nb\nc\n
3664*22dc650dSSadaf Ebrahimi    a\nb\nc\n
3665*22dc650dSSadaf Ebrahimi
3666*22dc650dSSadaf Ebrahimi/^b/
3667*22dc650dSSadaf Ebrahimi
3668*22dc650dSSadaf Ebrahimi/()^b/
3669*22dc650dSSadaf Ebrahimi\= Expect no match
3670*22dc650dSSadaf Ebrahimi    a\nb\nc\n
3671*22dc650dSSadaf Ebrahimi    a\nb\nc\n
3672*22dc650dSSadaf Ebrahimi
3673*22dc650dSSadaf Ebrahimi/((?m)^b)/
3674*22dc650dSSadaf Ebrahimi    a\nb\nc\n
3675*22dc650dSSadaf Ebrahimi
3676*22dc650dSSadaf Ebrahimi/(?(?!a)a|b)/
3677*22dc650dSSadaf Ebrahimi
3678*22dc650dSSadaf Ebrahimi/(?(?!a)b|a)/
3679*22dc650dSSadaf Ebrahimi    a
3680*22dc650dSSadaf Ebrahimi
3681*22dc650dSSadaf Ebrahimi/(?(?=a)b|a)/
3682*22dc650dSSadaf Ebrahimi\= Expect no match
3683*22dc650dSSadaf Ebrahimi    a
3684*22dc650dSSadaf Ebrahimi    a
3685*22dc650dSSadaf Ebrahimi
3686*22dc650dSSadaf Ebrahimi/(?(?=a)a|b)/
3687*22dc650dSSadaf Ebrahimi    a
3688*22dc650dSSadaf Ebrahimi
3689*22dc650dSSadaf Ebrahimi/(\w+:)+/
3690*22dc650dSSadaf Ebrahimi    one:
3691*22dc650dSSadaf Ebrahimi
3692*22dc650dSSadaf Ebrahimi/$(?<=^(a))/
3693*22dc650dSSadaf Ebrahimi    a
3694*22dc650dSSadaf Ebrahimi
3695*22dc650dSSadaf Ebrahimi/([\w:]+::)?(\w+)$/
3696*22dc650dSSadaf Ebrahimi    abcd
3697*22dc650dSSadaf Ebrahimi    xy:z:::abcd
3698*22dc650dSSadaf Ebrahimi
3699*22dc650dSSadaf Ebrahimi/^[^bcd]*(c+)/
3700*22dc650dSSadaf Ebrahimi    aexycd
3701*22dc650dSSadaf Ebrahimi
3702*22dc650dSSadaf Ebrahimi/(a*)b+/
3703*22dc650dSSadaf Ebrahimi    caab
3704*22dc650dSSadaf Ebrahimi
3705*22dc650dSSadaf Ebrahimi/([\w:]+::)?(\w+)$/
3706*22dc650dSSadaf Ebrahimi    abcd
3707*22dc650dSSadaf Ebrahimi    xy:z:::abcd
3708*22dc650dSSadaf Ebrahimi\= Expect no match
3709*22dc650dSSadaf Ebrahimi    abcd:
3710*22dc650dSSadaf Ebrahimi    abcd:
3711*22dc650dSSadaf Ebrahimi
3712*22dc650dSSadaf Ebrahimi/^[^bcd]*(c+)/
3713*22dc650dSSadaf Ebrahimi    aexycd
3714*22dc650dSSadaf Ebrahimi
3715*22dc650dSSadaf Ebrahimi/(>a+)ab/
3716*22dc650dSSadaf Ebrahimi
3717*22dc650dSSadaf Ebrahimi/(?>a+)b/
3718*22dc650dSSadaf Ebrahimi    aaab
3719*22dc650dSSadaf Ebrahimi
3720*22dc650dSSadaf Ebrahimi/([[:]+)/
3721*22dc650dSSadaf Ebrahimi    a:[b]:
3722*22dc650dSSadaf Ebrahimi
3723*22dc650dSSadaf Ebrahimi/([[=]+)/
3724*22dc650dSSadaf Ebrahimi    a=[b]=
3725*22dc650dSSadaf Ebrahimi
3726*22dc650dSSadaf Ebrahimi/([[.]+)/
3727*22dc650dSSadaf Ebrahimi    a.[b].
3728*22dc650dSSadaf Ebrahimi
3729*22dc650dSSadaf Ebrahimi/((?>a+)b)/
3730*22dc650dSSadaf Ebrahimi    aaab
3731*22dc650dSSadaf Ebrahimi
3732*22dc650dSSadaf Ebrahimi/(?>(a+))b/
3733*22dc650dSSadaf Ebrahimi    aaab
3734*22dc650dSSadaf Ebrahimi
3735*22dc650dSSadaf Ebrahimi/((?>[^()]+)|\([^()]*\))+/
3736*22dc650dSSadaf Ebrahimi    ((abc(ade)ufh()()x
3737*22dc650dSSadaf Ebrahimi
3738*22dc650dSSadaf Ebrahimi/a\Z/
3739*22dc650dSSadaf Ebrahimi\= Expect no match
3740*22dc650dSSadaf Ebrahimi    aaab
3741*22dc650dSSadaf Ebrahimi    a\nb\n
3742*22dc650dSSadaf Ebrahimi
3743*22dc650dSSadaf Ebrahimi/b\Z/
3744*22dc650dSSadaf Ebrahimi    a\nb\n
3745*22dc650dSSadaf Ebrahimi
3746*22dc650dSSadaf Ebrahimi/b\z/
3747*22dc650dSSadaf Ebrahimi
3748*22dc650dSSadaf Ebrahimi/b\Z/
3749*22dc650dSSadaf Ebrahimi    a\nb
3750*22dc650dSSadaf Ebrahimi
3751*22dc650dSSadaf Ebrahimi/b\z/
3752*22dc650dSSadaf Ebrahimi    a\nb
3753*22dc650dSSadaf Ebrahimi
3754*22dc650dSSadaf Ebrahimi/(?>.*)(?<=(abcd|wxyz))/
3755*22dc650dSSadaf Ebrahimi    alphabetabcd
3756*22dc650dSSadaf Ebrahimi    endingwxyz
3757*22dc650dSSadaf Ebrahimi\= Expect no match
3758*22dc650dSSadaf Ebrahimi    a rather long string that doesn't end with one of them
3759*22dc650dSSadaf Ebrahimi
3760*22dc650dSSadaf Ebrahimi/word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
3761*22dc650dSSadaf Ebrahimi    word cat dog elephant mussel cow horse canary baboon snake shark otherword
3762*22dc650dSSadaf Ebrahimi\= Expect no match
3763*22dc650dSSadaf Ebrahimi    word cat dog elephant mussel cow horse canary baboon snake shark
3764*22dc650dSSadaf Ebrahimi
3765*22dc650dSSadaf Ebrahimi/word (?>[a-zA-Z0-9]+ ){0,30}otherword/
3766*22dc650dSSadaf Ebrahimi\= Expect no match
3767*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
3768*22dc650dSSadaf Ebrahimi
3769*22dc650dSSadaf Ebrahimi/(?<=\d{3}(?!999))foo/
3770*22dc650dSSadaf Ebrahimi    999foo
3771*22dc650dSSadaf Ebrahimi    123999foo
3772*22dc650dSSadaf Ebrahimi\= Expect no match
3773*22dc650dSSadaf Ebrahimi    123abcfoo
3774*22dc650dSSadaf Ebrahimi
3775*22dc650dSSadaf Ebrahimi/(?<=(?!...999)\d{3})foo/
3776*22dc650dSSadaf Ebrahimi    999foo
3777*22dc650dSSadaf Ebrahimi    123999foo
3778*22dc650dSSadaf Ebrahimi\= Expect no match
3779*22dc650dSSadaf Ebrahimi    123abcfoo
3780*22dc650dSSadaf Ebrahimi
3781*22dc650dSSadaf Ebrahimi/(?<=\d{3}(?!999)...)foo/
3782*22dc650dSSadaf Ebrahimi    123abcfoo
3783*22dc650dSSadaf Ebrahimi    123456foo
3784*22dc650dSSadaf Ebrahimi\= Expect no match
3785*22dc650dSSadaf Ebrahimi    123999foo
3786*22dc650dSSadaf Ebrahimi
3787*22dc650dSSadaf Ebrahimi/(?<=\d{3}...)(?<!999)foo/
3788*22dc650dSSadaf Ebrahimi    123abcfoo
3789*22dc650dSSadaf Ebrahimi    123456foo
3790*22dc650dSSadaf Ebrahimi\= Expect no match
3791*22dc650dSSadaf Ebrahimi    123999foo
3792*22dc650dSSadaf Ebrahimi
3793*22dc650dSSadaf Ebrahimi/((Z)+|A)*/
3794*22dc650dSSadaf Ebrahimi    ZABCDEFG
3795*22dc650dSSadaf Ebrahimi
3796*22dc650dSSadaf Ebrahimi/(Z()|A)*/
3797*22dc650dSSadaf Ebrahimi    ZABCDEFG
3798*22dc650dSSadaf Ebrahimi
3799*22dc650dSSadaf Ebrahimi/(Z(())|A)*/
3800*22dc650dSSadaf Ebrahimi    ZABCDEFG
3801*22dc650dSSadaf Ebrahimi
3802*22dc650dSSadaf Ebrahimi/((?>Z)+|A)*/
3803*22dc650dSSadaf Ebrahimi    ZABCDEFG
3804*22dc650dSSadaf Ebrahimi
3805*22dc650dSSadaf Ebrahimi/((?>)+|A)*/
3806*22dc650dSSadaf Ebrahimi    ZABCDEFG
3807*22dc650dSSadaf Ebrahimi
3808*22dc650dSSadaf Ebrahimi/a*/g
3809*22dc650dSSadaf Ebrahimi    abbab
3810*22dc650dSSadaf Ebrahimi
3811*22dc650dSSadaf Ebrahimi/[[:space:]]+/
3812*22dc650dSSadaf Ebrahimi    > \x09\x0a\x0c\x0d\x0b<
3813*22dc650dSSadaf Ebrahimi
3814*22dc650dSSadaf Ebrahimi/[[:blank:]]+/
3815*22dc650dSSadaf Ebrahimi    > \x09\x0a\x0c\x0d\x0b<
3816*22dc650dSSadaf Ebrahimi
3817*22dc650dSSadaf Ebrahimi/[\s]+/
3818*22dc650dSSadaf Ebrahimi    > \x09\x0a\x0c\x0d\x0b<
3819*22dc650dSSadaf Ebrahimi
3820*22dc650dSSadaf Ebrahimi/\s+/
3821*22dc650dSSadaf Ebrahimi    > \x09\x0a\x0c\x0d\x0b<
3822*22dc650dSSadaf Ebrahimi
3823*22dc650dSSadaf Ebrahimi/ab/x
3824*22dc650dSSadaf Ebrahimi    ab
3825*22dc650dSSadaf Ebrahimi
3826*22dc650dSSadaf Ebrahimi/(?!\A)x/m
3827*22dc650dSSadaf Ebrahimi  a\nxb\n
3828*22dc650dSSadaf Ebrahimi
3829*22dc650dSSadaf Ebrahimi/(?!^)x/m
3830*22dc650dSSadaf Ebrahimi\= Expect no match
3831*22dc650dSSadaf Ebrahimi    a\nxb\n
3832*22dc650dSSadaf Ebrahimi
3833*22dc650dSSadaf Ebrahimi/abc\Qabc\Eabc/
3834*22dc650dSSadaf Ebrahimi    abcabcabc
3835*22dc650dSSadaf Ebrahimi
3836*22dc650dSSadaf Ebrahimi/abc\Q(*+|\Eabc/
3837*22dc650dSSadaf Ebrahimi    abc(*+|abc
3838*22dc650dSSadaf Ebrahimi
3839*22dc650dSSadaf Ebrahimi/   abc\Q abc\Eabc/x
3840*22dc650dSSadaf Ebrahimi    abc abcabc
3841*22dc650dSSadaf Ebrahimi\= Expect no match
3842*22dc650dSSadaf Ebrahimi    abcabcabc
3843*22dc650dSSadaf Ebrahimi
3844*22dc650dSSadaf Ebrahimi/abc#comment
3845*22dc650dSSadaf Ebrahimi    \Q#not comment
3846*22dc650dSSadaf Ebrahimi    literal\E/x
3847*22dc650dSSadaf Ebrahimi    abc#not comment\n    literal
3848*22dc650dSSadaf Ebrahimi
3849*22dc650dSSadaf Ebrahimi/abc#comment
3850*22dc650dSSadaf Ebrahimi    \Q#not comment
3851*22dc650dSSadaf Ebrahimi    literal/x
3852*22dc650dSSadaf Ebrahimi    abc#not comment\n    literal
3853*22dc650dSSadaf Ebrahimi
3854*22dc650dSSadaf Ebrahimi/abc#comment
3855*22dc650dSSadaf Ebrahimi    \Q#not comment
3856*22dc650dSSadaf Ebrahimi    literal\E #more comment
3857*22dc650dSSadaf Ebrahimi    /x
3858*22dc650dSSadaf Ebrahimi    abc#not comment\n    literal
3859*22dc650dSSadaf Ebrahimi
3860*22dc650dSSadaf Ebrahimi/abc#comment
3861*22dc650dSSadaf Ebrahimi    \Q#not comment
3862*22dc650dSSadaf Ebrahimi    literal\E #more comment/x
3863*22dc650dSSadaf Ebrahimi    abc#not comment\n    literal
3864*22dc650dSSadaf Ebrahimi
3865*22dc650dSSadaf Ebrahimi/\Qabc\$xyz\E/
3866*22dc650dSSadaf Ebrahimi    abc\\\$xyz
3867*22dc650dSSadaf Ebrahimi
3868*22dc650dSSadaf Ebrahimi/\Qabc\E\$\Qxyz\E/
3869*22dc650dSSadaf Ebrahimi    abc\$xyz
3870*22dc650dSSadaf Ebrahimi
3871*22dc650dSSadaf Ebrahimi/\Gabc/
3872*22dc650dSSadaf Ebrahimi    abc
3873*22dc650dSSadaf Ebrahimi\= Expect no match
3874*22dc650dSSadaf Ebrahimi    xyzabc
3875*22dc650dSSadaf Ebrahimi
3876*22dc650dSSadaf Ebrahimi/\Gabc./g
3877*22dc650dSSadaf Ebrahimi    abc1abc2xyzabc3
3878*22dc650dSSadaf Ebrahimi
3879*22dc650dSSadaf Ebrahimi/abc./g
3880*22dc650dSSadaf Ebrahimi    abc1abc2xyzabc3
3881*22dc650dSSadaf Ebrahimi
3882*22dc650dSSadaf Ebrahimi/a(?x: b c )d/
3883*22dc650dSSadaf Ebrahimi    XabcdY
3884*22dc650dSSadaf Ebrahimi\= Expect no match
3885*22dc650dSSadaf Ebrahimi    Xa b c d Y
3886*22dc650dSSadaf Ebrahimi
3887*22dc650dSSadaf Ebrahimi/((?x)x y z | a b c)/
3888*22dc650dSSadaf Ebrahimi    XabcY
3889*22dc650dSSadaf Ebrahimi    AxyzB
3890*22dc650dSSadaf Ebrahimi
3891*22dc650dSSadaf Ebrahimi/(?i)AB(?-i)C/
3892*22dc650dSSadaf Ebrahimi    XabCY
3893*22dc650dSSadaf Ebrahimi\= Expect no match
3894*22dc650dSSadaf Ebrahimi    XabcY
3895*22dc650dSSadaf Ebrahimi
3896*22dc650dSSadaf Ebrahimi/((?i)AB(?-i)C|D)E/
3897*22dc650dSSadaf Ebrahimi    abCE
3898*22dc650dSSadaf Ebrahimi    DE
3899*22dc650dSSadaf Ebrahimi\= Expect no match
3900*22dc650dSSadaf Ebrahimi    abcE
3901*22dc650dSSadaf Ebrahimi    abCe
3902*22dc650dSSadaf Ebrahimi    dE
3903*22dc650dSSadaf Ebrahimi    De
3904*22dc650dSSadaf Ebrahimi
3905*22dc650dSSadaf Ebrahimi/[z\Qa-d]\E]/
3906*22dc650dSSadaf Ebrahimi    z
3907*22dc650dSSadaf Ebrahimi    a
3908*22dc650dSSadaf Ebrahimi    -
3909*22dc650dSSadaf Ebrahimi    d
3910*22dc650dSSadaf Ebrahimi    ]
3911*22dc650dSSadaf Ebrahimi\= Expect no match
3912*22dc650dSSadaf Ebrahimi    b
3913*22dc650dSSadaf Ebrahimi
3914*22dc650dSSadaf Ebrahimi/(a+)*b/
3915*22dc650dSSadaf Ebrahimi\= Expect no match
3916*22dc650dSSadaf Ebrahimi    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3917*22dc650dSSadaf Ebrahimi
3918*22dc650dSSadaf Ebrahimi/(?i)reg(?:ul(?:[a�]|ae)r|ex)/
3919*22dc650dSSadaf Ebrahimi    REGular
3920*22dc650dSSadaf Ebrahimi    regulaer
3921*22dc650dSSadaf Ebrahimi    Regex
3922*22dc650dSSadaf Ebrahimi    regul�r
3923*22dc650dSSadaf Ebrahimi
3924*22dc650dSSadaf Ebrahimi/����[�-��-�]+/
3925*22dc650dSSadaf Ebrahimi    �����
3926*22dc650dSSadaf Ebrahimi    �����
3927*22dc650dSSadaf Ebrahimi    �����
3928*22dc650dSSadaf Ebrahimi    �����
3929*22dc650dSSadaf Ebrahimi
3930*22dc650dSSadaf Ebrahimi/(?<=Z)X./
3931*22dc650dSSadaf Ebrahimi    \x84XAZXB
3932*22dc650dSSadaf Ebrahimi
3933*22dc650dSSadaf Ebrahimi/^(?(2)a|(1)(2))+$/
3934*22dc650dSSadaf Ebrahimi    123a
3935*22dc650dSSadaf Ebrahimi
3936*22dc650dSSadaf Ebrahimi/(?<=a|bbbb)c/
3937*22dc650dSSadaf Ebrahimi    ac
3938*22dc650dSSadaf Ebrahimi    bbbbc
3939*22dc650dSSadaf Ebrahimi
3940*22dc650dSSadaf Ebrahimi/line\nbreak/
3941*22dc650dSSadaf Ebrahimi    this is a line\nbreak
3942*22dc650dSSadaf Ebrahimi    line one\nthis is a line\nbreak in the second line
3943*22dc650dSSadaf Ebrahimi
3944*22dc650dSSadaf Ebrahimi/line\nbreak/firstline
3945*22dc650dSSadaf Ebrahimi    this is a line\nbreak
3946*22dc650dSSadaf Ebrahimi\= Expect no match
3947*22dc650dSSadaf Ebrahimi    line one\nthis is a line\nbreak in the second line
3948*22dc650dSSadaf Ebrahimi
3949*22dc650dSSadaf Ebrahimi/line\nbreak/m,firstline
3950*22dc650dSSadaf Ebrahimi    this is a line\nbreak
3951*22dc650dSSadaf Ebrahimi\= Expect no match
3952*22dc650dSSadaf Ebrahimi    line one\nthis is a line\nbreak in the second line
3953*22dc650dSSadaf Ebrahimi
3954*22dc650dSSadaf Ebrahimi/1234/
3955*22dc650dSSadaf Ebrahimi    123\=ps
3956*22dc650dSSadaf Ebrahimi\= Expect no match
3957*22dc650dSSadaf Ebrahimi    a4\=ps,dfa_restart
3958*22dc650dSSadaf Ebrahimi
3959*22dc650dSSadaf Ebrahimi/1234/
3960*22dc650dSSadaf Ebrahimi    123\=ps
3961*22dc650dSSadaf Ebrahimi    4\=ps,dfa_restart
3962*22dc650dSSadaf Ebrahimi
3963*22dc650dSSadaf Ebrahimi/^/gm
3964*22dc650dSSadaf Ebrahimi    a\nb\nc\n
3965*22dc650dSSadaf Ebrahimi    \
3966*22dc650dSSadaf Ebrahimi
3967*22dc650dSSadaf Ebrahimi/(?<=C\n)^/gm
3968*22dc650dSSadaf Ebrahimi    A\nC\nC\n
3969*22dc650dSSadaf Ebrahimi
3970*22dc650dSSadaf Ebrahimi/(?s)A?B/
3971*22dc650dSSadaf Ebrahimi    AB
3972*22dc650dSSadaf Ebrahimi    aB
3973*22dc650dSSadaf Ebrahimi
3974*22dc650dSSadaf Ebrahimi/(?s)A*B/
3975*22dc650dSSadaf Ebrahimi    AB
3976*22dc650dSSadaf Ebrahimi    aB
3977*22dc650dSSadaf Ebrahimi
3978*22dc650dSSadaf Ebrahimi/(?m)A?B/
3979*22dc650dSSadaf Ebrahimi    AB
3980*22dc650dSSadaf Ebrahimi    aB
3981*22dc650dSSadaf Ebrahimi
3982*22dc650dSSadaf Ebrahimi/(?m)A*B/
3983*22dc650dSSadaf Ebrahimi    AB
3984*22dc650dSSadaf Ebrahimi    aB
3985*22dc650dSSadaf Ebrahimi
3986*22dc650dSSadaf Ebrahimi/Content-Type\x3A[^\r\n]{6,}/
3987*22dc650dSSadaf Ebrahimi    Content-Type:xxxxxyyy
3988*22dc650dSSadaf Ebrahimi
3989*22dc650dSSadaf Ebrahimi/Content-Type\x3A[^\r\n]{6,}z/
3990*22dc650dSSadaf Ebrahimi    Content-Type:xxxxxyyyz
3991*22dc650dSSadaf Ebrahimi
3992*22dc650dSSadaf Ebrahimi/Content-Type\x3A[^a]{6,}/
3993*22dc650dSSadaf Ebrahimi    Content-Type:xxxyyy
3994*22dc650dSSadaf Ebrahimi
3995*22dc650dSSadaf Ebrahimi/Content-Type\x3A[^a]{6,}z/
3996*22dc650dSSadaf Ebrahimi    Content-Type:xxxyyyz
3997*22dc650dSSadaf Ebrahimi
3998*22dc650dSSadaf Ebrahimi/^abc/Im,newline=lf
3999*22dc650dSSadaf Ebrahimi    xyz\nabc
4000*22dc650dSSadaf Ebrahimi    xyz\r\nabc
4001*22dc650dSSadaf Ebrahimi\= Expect no match
4002*22dc650dSSadaf Ebrahimi    xyz\rabc
4003*22dc650dSSadaf Ebrahimi    xyzabc\r
4004*22dc650dSSadaf Ebrahimi    xyzabc\rpqr
4005*22dc650dSSadaf Ebrahimi    xyzabc\r\n
4006*22dc650dSSadaf Ebrahimi    xyzabc\r\npqr
4007*22dc650dSSadaf Ebrahimi
4008*22dc650dSSadaf Ebrahimi/^abc/Im,newline=crlf
4009*22dc650dSSadaf Ebrahimi    xyz\r\nabclf>
4010*22dc650dSSadaf Ebrahimi\= Expect no match
4011*22dc650dSSadaf Ebrahimi    xyz\nabclf
4012*22dc650dSSadaf Ebrahimi    xyz\rabclf
4013*22dc650dSSadaf Ebrahimi
4014*22dc650dSSadaf Ebrahimi/^abc/Im,newline=cr
4015*22dc650dSSadaf Ebrahimi    xyz\rabc
4016*22dc650dSSadaf Ebrahimi\= Expect no match
4017*22dc650dSSadaf Ebrahimi    xyz\nabc
4018*22dc650dSSadaf Ebrahimi    xyz\r\nabc
4019*22dc650dSSadaf Ebrahimi
4020*22dc650dSSadaf Ebrahimi/.*/I,newline=lf
4021*22dc650dSSadaf Ebrahimi    abc\ndef
4022*22dc650dSSadaf Ebrahimi    abc\rdef
4023*22dc650dSSadaf Ebrahimi    abc\r\ndef
4024*22dc650dSSadaf Ebrahimi
4025*22dc650dSSadaf Ebrahimi/.*/I,newline=cr
4026*22dc650dSSadaf Ebrahimi    abc\ndef
4027*22dc650dSSadaf Ebrahimi    abc\rdef
4028*22dc650dSSadaf Ebrahimi    abc\r\ndef
4029*22dc650dSSadaf Ebrahimi
4030*22dc650dSSadaf Ebrahimi/.*/I,newline=crlf
4031*22dc650dSSadaf Ebrahimi    abc\ndef
4032*22dc650dSSadaf Ebrahimi    abc\rdef
4033*22dc650dSSadaf Ebrahimi    abc\r\ndef
4034*22dc650dSSadaf Ebrahimi
4035*22dc650dSSadaf Ebrahimi/\w+(.)(.)?def/Is
4036*22dc650dSSadaf Ebrahimi    abc\ndef
4037*22dc650dSSadaf Ebrahimi    abc\rdef
4038*22dc650dSSadaf Ebrahimi    abc\r\ndef
4039*22dc650dSSadaf Ebrahimi
4040*22dc650dSSadaf Ebrahimi/\w+(.)(.)?def/s
4041*22dc650dSSadaf Ebrahimi    abc\ndef
4042*22dc650dSSadaf Ebrahimi    abc\rdef
4043*22dc650dSSadaf Ebrahimi    abc\r\ndef
4044*22dc650dSSadaf Ebrahimi
4045*22dc650dSSadaf Ebrahimi/^\w+=.*(\\\n.*)*/
4046*22dc650dSSadaf Ebrahimi    abc=xyz\\\npqr
4047*22dc650dSSadaf Ebrahimi
4048*22dc650dSSadaf Ebrahimi/^(a()*)*/
4049*22dc650dSSadaf Ebrahimi    aaaa
4050*22dc650dSSadaf Ebrahimi
4051*22dc650dSSadaf Ebrahimi/^(?:a(?:(?:))*)*/
4052*22dc650dSSadaf Ebrahimi    aaaa
4053*22dc650dSSadaf Ebrahimi
4054*22dc650dSSadaf Ebrahimi/^(a()+)+/
4055*22dc650dSSadaf Ebrahimi    aaaa
4056*22dc650dSSadaf Ebrahimi
4057*22dc650dSSadaf Ebrahimi/^(?:a(?:(?:))+)+/
4058*22dc650dSSadaf Ebrahimi    aaaa
4059*22dc650dSSadaf Ebrahimi
4060*22dc650dSSadaf Ebrahimi/(a|)*\d/
4061*22dc650dSSadaf Ebrahimi  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
4062*22dc650dSSadaf Ebrahimi\= Expect no match
4063*22dc650dSSadaf Ebrahimi  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4064*22dc650dSSadaf Ebrahimi
4065*22dc650dSSadaf Ebrahimi/(?>a|)*\d/
4066*22dc650dSSadaf Ebrahimi  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
4067*22dc650dSSadaf Ebrahimi\= Expect no match
4068*22dc650dSSadaf Ebrahimi  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4069*22dc650dSSadaf Ebrahimi
4070*22dc650dSSadaf Ebrahimi/(?:a|)*\d/
4071*22dc650dSSadaf Ebrahimi  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
4072*22dc650dSSadaf Ebrahimi\= Expect no match
4073*22dc650dSSadaf Ebrahimi  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4074*22dc650dSSadaf Ebrahimi
4075*22dc650dSSadaf Ebrahimi/^a.b/newline=lf
4076*22dc650dSSadaf Ebrahimi    a\rb
4077*22dc650dSSadaf Ebrahimi\= Expect no match
4078*22dc650dSSadaf Ebrahimi    a\nb
4079*22dc650dSSadaf Ebrahimi
4080*22dc650dSSadaf Ebrahimi/^a.b/newline=cr
4081*22dc650dSSadaf Ebrahimi    a\nb
4082*22dc650dSSadaf Ebrahimi\= Expect no match
4083*22dc650dSSadaf Ebrahimi    a\rb
4084*22dc650dSSadaf Ebrahimi
4085*22dc650dSSadaf Ebrahimi/^a.b/newline=anycrlf
4086*22dc650dSSadaf Ebrahimi    a\x85b
4087*22dc650dSSadaf Ebrahimi\= Expect no match
4088*22dc650dSSadaf Ebrahimi    a\rb
4089*22dc650dSSadaf Ebrahimi
4090*22dc650dSSadaf Ebrahimi/^a.b/newline=any
4091*22dc650dSSadaf Ebrahimi\= Expect no match
4092*22dc650dSSadaf Ebrahimi    a\nb
4093*22dc650dSSadaf Ebrahimi    a\rb
4094*22dc650dSSadaf Ebrahimi    a\x85b
4095*22dc650dSSadaf Ebrahimi
4096*22dc650dSSadaf Ebrahimi/^abc./gmx,newline=any
4097*22dc650dSSadaf Ebrahimi    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
4098*22dc650dSSadaf Ebrahimi
4099*22dc650dSSadaf Ebrahimi/abc.$/gmx,newline=any
4100*22dc650dSSadaf Ebrahimi    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
4101*22dc650dSSadaf Ebrahimi
4102*22dc650dSSadaf Ebrahimi/^a\Rb/bsr=unicode
4103*22dc650dSSadaf Ebrahimi    a\nb
4104*22dc650dSSadaf Ebrahimi    a\rb
4105*22dc650dSSadaf Ebrahimi    a\r\nb
4106*22dc650dSSadaf Ebrahimi    a\x0bb
4107*22dc650dSSadaf Ebrahimi    a\x0cb
4108*22dc650dSSadaf Ebrahimi    a\x85b
4109*22dc650dSSadaf Ebrahimi\= Expect no match
4110*22dc650dSSadaf Ebrahimi    a\n\rb
4111*22dc650dSSadaf Ebrahimi
4112*22dc650dSSadaf Ebrahimi/^a\R*b/bsr=unicode
4113*22dc650dSSadaf Ebrahimi    ab
4114*22dc650dSSadaf Ebrahimi    a\nb
4115*22dc650dSSadaf Ebrahimi    a\rb
4116*22dc650dSSadaf Ebrahimi    a\r\nb
4117*22dc650dSSadaf Ebrahimi    a\x0bb
4118*22dc650dSSadaf Ebrahimi    a\x0cb
4119*22dc650dSSadaf Ebrahimi    a\x85b
4120*22dc650dSSadaf Ebrahimi    a\n\rb
4121*22dc650dSSadaf Ebrahimi    a\n\r\x85\x0cb
4122*22dc650dSSadaf Ebrahimi
4123*22dc650dSSadaf Ebrahimi/^a\R+b/bsr=unicode
4124*22dc650dSSadaf Ebrahimi    a\nb
4125*22dc650dSSadaf Ebrahimi    a\rb
4126*22dc650dSSadaf Ebrahimi    a\r\nb
4127*22dc650dSSadaf Ebrahimi    a\x0bb
4128*22dc650dSSadaf Ebrahimi    a\x0cb
4129*22dc650dSSadaf Ebrahimi    a\x85b
4130*22dc650dSSadaf Ebrahimi    a\n\rb
4131*22dc650dSSadaf Ebrahimi    a\n\r\x85\x0cb
4132*22dc650dSSadaf Ebrahimi\= Expect no match
4133*22dc650dSSadaf Ebrahimi    ab
4134*22dc650dSSadaf Ebrahimi
4135*22dc650dSSadaf Ebrahimi/^a\R{1,3}b/bsr=unicode
4136*22dc650dSSadaf Ebrahimi    a\nb
4137*22dc650dSSadaf Ebrahimi    a\n\rb
4138*22dc650dSSadaf Ebrahimi    a\n\r\x85b
4139*22dc650dSSadaf Ebrahimi    a\r\n\r\nb
4140*22dc650dSSadaf Ebrahimi    a\r\n\r\n\r\nb
4141*22dc650dSSadaf Ebrahimi    a\n\r\n\rb
4142*22dc650dSSadaf Ebrahimi    a\n\n\r\nb
4143*22dc650dSSadaf Ebrahimi\= Expect no match
4144*22dc650dSSadaf Ebrahimi    a\n\n\n\rb
4145*22dc650dSSadaf Ebrahimi    a\r
4146*22dc650dSSadaf Ebrahimi
4147*22dc650dSSadaf Ebrahimi/.+foo/
4148*22dc650dSSadaf Ebrahimi    afoo
4149*22dc650dSSadaf Ebrahimi\= Expect no match
4150*22dc650dSSadaf Ebrahimi    \r\nfoo
4151*22dc650dSSadaf Ebrahimi    \nfoo
4152*22dc650dSSadaf Ebrahimi
4153*22dc650dSSadaf Ebrahimi/.+foo/newline=crlf
4154*22dc650dSSadaf Ebrahimi    afoo
4155*22dc650dSSadaf Ebrahimi    \nfoo
4156*22dc650dSSadaf Ebrahimi\= Expect no match
4157*22dc650dSSadaf Ebrahimi    \r\nfoo
4158*22dc650dSSadaf Ebrahimi
4159*22dc650dSSadaf Ebrahimi/.+foo/newline=any
4160*22dc650dSSadaf Ebrahimi    afoo
4161*22dc650dSSadaf Ebrahimi\= Expect no match
4162*22dc650dSSadaf Ebrahimi    \nfoo
4163*22dc650dSSadaf Ebrahimi    \r\nfoo
4164*22dc650dSSadaf Ebrahimi
4165*22dc650dSSadaf Ebrahimi/.+foo/s
4166*22dc650dSSadaf Ebrahimi    afoo
4167*22dc650dSSadaf Ebrahimi    \r\nfoo
4168*22dc650dSSadaf Ebrahimi    \nfoo
4169*22dc650dSSadaf Ebrahimi
4170*22dc650dSSadaf Ebrahimi/^$/gm,newline=any
4171*22dc650dSSadaf Ebrahimi    abc\r\rxyz
4172*22dc650dSSadaf Ebrahimi    abc\n\rxyz
4173*22dc650dSSadaf Ebrahimi\= Expect no match
4174*22dc650dSSadaf Ebrahimi    abc\r\nxyz
4175*22dc650dSSadaf Ebrahimi
4176*22dc650dSSadaf Ebrahimi/^X/m
4177*22dc650dSSadaf Ebrahimi    XABC
4178*22dc650dSSadaf Ebrahimi\= Expect no match
4179*22dc650dSSadaf Ebrahimi    XABC\=notbol
4180*22dc650dSSadaf Ebrahimi
4181*22dc650dSSadaf Ebrahimi/(?m)^$/g,newline=any,aftertext
4182*22dc650dSSadaf Ebrahimi    abc\r\n\r\n
4183*22dc650dSSadaf Ebrahimi
4184*22dc650dSSadaf Ebrahimi/(?m)^$|^\r\n/g,newline=any,aftertext
4185*22dc650dSSadaf Ebrahimi    abc\r\n\r\n
4186*22dc650dSSadaf Ebrahimi
4187*22dc650dSSadaf Ebrahimi/(?m)$/g,newline=any,aftertext
4188*22dc650dSSadaf Ebrahimi    abc\r\n\r\n
4189*22dc650dSSadaf Ebrahimi
4190*22dc650dSSadaf Ebrahimi/(?|(abc)|(xyz))/
4191*22dc650dSSadaf Ebrahimi   >abc<
4192*22dc650dSSadaf Ebrahimi   >xyz<
4193*22dc650dSSadaf Ebrahimi
4194*22dc650dSSadaf Ebrahimi/(x)(?|(abc)|(xyz))(x)/
4195*22dc650dSSadaf Ebrahimi    xabcx
4196*22dc650dSSadaf Ebrahimi    xxyzx
4197*22dc650dSSadaf Ebrahimi
4198*22dc650dSSadaf Ebrahimi/(x)(?|(abc)(pqr)|(xyz))(x)/
4199*22dc650dSSadaf Ebrahimi    xabcpqrx
4200*22dc650dSSadaf Ebrahimi    xxyzx
4201*22dc650dSSadaf Ebrahimi
4202*22dc650dSSadaf Ebrahimi/(?|(abc)|(xyz))(?1)/
4203*22dc650dSSadaf Ebrahimi    abcabc
4204*22dc650dSSadaf Ebrahimi    xyzabc
4205*22dc650dSSadaf Ebrahimi\= Expect no match
4206*22dc650dSSadaf Ebrahimi    xyzxyz
4207*22dc650dSSadaf Ebrahimi
4208*22dc650dSSadaf Ebrahimi/\H\h\V\v/
4209*22dc650dSSadaf Ebrahimi    X X\x0a
4210*22dc650dSSadaf Ebrahimi    X\x09X\x0b
4211*22dc650dSSadaf Ebrahimi\= Expect no match
4212*22dc650dSSadaf Ebrahimi    \xa0 X\x0a
4213*22dc650dSSadaf Ebrahimi
4214*22dc650dSSadaf Ebrahimi/\H*\h+\V?\v{3,4}/
4215*22dc650dSSadaf Ebrahimi    \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
4216*22dc650dSSadaf Ebrahimi    \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
4217*22dc650dSSadaf Ebrahimi    \x09\x20\xa0\x0a\x0b\x0c
4218*22dc650dSSadaf Ebrahimi\= Expect no match
4219*22dc650dSSadaf Ebrahimi    \x09\x20\xa0\x0a\x0b
4220*22dc650dSSadaf Ebrahimi
4221*22dc650dSSadaf Ebrahimi/\H{3,4}/
4222*22dc650dSSadaf Ebrahimi    XY  ABCDE
4223*22dc650dSSadaf Ebrahimi    XY  PQR ST
4224*22dc650dSSadaf Ebrahimi
4225*22dc650dSSadaf Ebrahimi/.\h{3,4}./
4226*22dc650dSSadaf Ebrahimi    XY  AB    PQRS
4227*22dc650dSSadaf Ebrahimi
4228*22dc650dSSadaf Ebrahimi/\h*X\h?\H+Y\H?Z/
4229*22dc650dSSadaf Ebrahimi    >XNNNYZ
4230*22dc650dSSadaf Ebrahimi    >  X NYQZ
4231*22dc650dSSadaf Ebrahimi\= Expect no match
4232*22dc650dSSadaf Ebrahimi    >XYZ
4233*22dc650dSSadaf Ebrahimi    >  X NY Z
4234*22dc650dSSadaf Ebrahimi
4235*22dc650dSSadaf Ebrahimi/\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
4236*22dc650dSSadaf Ebrahimi    >XY\x0aZ\x0aA\x0bNN\x0c
4237*22dc650dSSadaf Ebrahimi    >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
4238*22dc650dSSadaf Ebrahimi
4239*22dc650dSSadaf Ebrahimi/.+A/newline=crlf
4240*22dc650dSSadaf Ebrahimi\= Expect no match
4241*22dc650dSSadaf Ebrahimi    \r\nA
4242*22dc650dSSadaf Ebrahimi
4243*22dc650dSSadaf Ebrahimi/\nA/newline=crlf
4244*22dc650dSSadaf Ebrahimi    \r\nA
4245*22dc650dSSadaf Ebrahimi
4246*22dc650dSSadaf Ebrahimi/[\r\n]A/newline=crlf
4247*22dc650dSSadaf Ebrahimi    \r\nA
4248*22dc650dSSadaf Ebrahimi
4249*22dc650dSSadaf Ebrahimi/(\r|\n)A/newline=crlf
4250*22dc650dSSadaf Ebrahimi    \r\nA
4251*22dc650dSSadaf Ebrahimi
4252*22dc650dSSadaf Ebrahimi/a\Rb/I,bsr=anycrlf
4253*22dc650dSSadaf Ebrahimi    a\rb
4254*22dc650dSSadaf Ebrahimi    a\nb
4255*22dc650dSSadaf Ebrahimi    a\r\nb
4256*22dc650dSSadaf Ebrahimi\= Expect no match
4257*22dc650dSSadaf Ebrahimi    a\x85b
4258*22dc650dSSadaf Ebrahimi    a\x0bb
4259*22dc650dSSadaf Ebrahimi
4260*22dc650dSSadaf Ebrahimi/a\Rb/I,bsr=unicode
4261*22dc650dSSadaf Ebrahimi    a\rb
4262*22dc650dSSadaf Ebrahimi    a\nb
4263*22dc650dSSadaf Ebrahimi    a\r\nb
4264*22dc650dSSadaf Ebrahimi    a\x85b
4265*22dc650dSSadaf Ebrahimi    a\x0bb
4266*22dc650dSSadaf Ebrahimi
4267*22dc650dSSadaf Ebrahimi/a\R?b/I,bsr=anycrlf
4268*22dc650dSSadaf Ebrahimi    a\rb
4269*22dc650dSSadaf Ebrahimi    a\nb
4270*22dc650dSSadaf Ebrahimi    a\r\nb
4271*22dc650dSSadaf Ebrahimi\= Expect no match
4272*22dc650dSSadaf Ebrahimi    a\x85b
4273*22dc650dSSadaf Ebrahimi    a\x0bb
4274*22dc650dSSadaf Ebrahimi
4275*22dc650dSSadaf Ebrahimi/a\R?b/I,bsr=unicode
4276*22dc650dSSadaf Ebrahimi    a\rb
4277*22dc650dSSadaf Ebrahimi    a\nb
4278*22dc650dSSadaf Ebrahimi    a\r\nb
4279*22dc650dSSadaf Ebrahimi    a\x85b
4280*22dc650dSSadaf Ebrahimi    a\x0bb
4281*22dc650dSSadaf Ebrahimi
4282*22dc650dSSadaf Ebrahimi/a\R{2,4}b/I,bsr=anycrlf
4283*22dc650dSSadaf Ebrahimi    a\r\n\nb
4284*22dc650dSSadaf Ebrahimi    a\n\r\rb
4285*22dc650dSSadaf Ebrahimi    a\r\n\r\n\r\n\r\nb
4286*22dc650dSSadaf Ebrahimi\= Expect no match
4287*22dc650dSSadaf Ebrahimi    a\x0b\x0bb
4288*22dc650dSSadaf Ebrahimi    a\x85\x85b
4289*22dc650dSSadaf Ebrahimi
4290*22dc650dSSadaf Ebrahimi/a\R{2,4}b/I,bsr=unicode
4291*22dc650dSSadaf Ebrahimi    a\r\rb
4292*22dc650dSSadaf Ebrahimi    a\n\n\nb
4293*22dc650dSSadaf Ebrahimi    a\r\n\n\r\rb
4294*22dc650dSSadaf Ebrahimi    a\x85\x85b
4295*22dc650dSSadaf Ebrahimi    a\x0b\x0bb
4296*22dc650dSSadaf Ebrahimi\= Expect no match
4297*22dc650dSSadaf Ebrahimi    a\r\r\r\r\rb
4298*22dc650dSSadaf Ebrahimi
4299*22dc650dSSadaf Ebrahimi/a(?!)|\wbc/
4300*22dc650dSSadaf Ebrahimi    abc
4301*22dc650dSSadaf Ebrahimi
4302*22dc650dSSadaf Ebrahimi/a[]b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
4303*22dc650dSSadaf Ebrahimi\= Expect no match
4304*22dc650dSSadaf Ebrahimi    ab
4305*22dc650dSSadaf Ebrahimi
4306*22dc650dSSadaf Ebrahimi/a[]+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
4307*22dc650dSSadaf Ebrahimi\= Expect no match
4308*22dc650dSSadaf Ebrahimi    ab
4309*22dc650dSSadaf Ebrahimi
4310*22dc650dSSadaf Ebrahimi/a[]*+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
4311*22dc650dSSadaf Ebrahimi\= Expect no match
4312*22dc650dSSadaf Ebrahimi    ab
4313*22dc650dSSadaf Ebrahimi
4314*22dc650dSSadaf Ebrahimi/a[^]b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
4315*22dc650dSSadaf Ebrahimi    aXb
4316*22dc650dSSadaf Ebrahimi    a\nb
4317*22dc650dSSadaf Ebrahimi\= Expect no match
4318*22dc650dSSadaf Ebrahimi    ab
4319*22dc650dSSadaf Ebrahimi
4320*22dc650dSSadaf Ebrahimi/a[^]+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
4321*22dc650dSSadaf Ebrahimi    aXb
4322*22dc650dSSadaf Ebrahimi    a\nX\nXb
4323*22dc650dSSadaf Ebrahimi\= Expect no match
4324*22dc650dSSadaf Ebrahimi    ab
4325*22dc650dSSadaf Ebrahimi
4326*22dc650dSSadaf Ebrahimi/X$/dollar_endonly
4327*22dc650dSSadaf Ebrahimi    X
4328*22dc650dSSadaf Ebrahimi\= Expect no match
4329*22dc650dSSadaf Ebrahimi    X\n
4330*22dc650dSSadaf Ebrahimi
4331*22dc650dSSadaf Ebrahimi/X$/
4332*22dc650dSSadaf Ebrahimi    X
4333*22dc650dSSadaf Ebrahimi    X\n
4334*22dc650dSSadaf Ebrahimi
4335*22dc650dSSadaf Ebrahimi/xyz/auto_callout
4336*22dc650dSSadaf Ebrahimi  xyz
4337*22dc650dSSadaf Ebrahimi  abcxyz
4338*22dc650dSSadaf Ebrahimi\= Expect no match
4339*22dc650dSSadaf Ebrahimi  abc
4340*22dc650dSSadaf Ebrahimi  abcxypqr
4341*22dc650dSSadaf Ebrahimi
4342*22dc650dSSadaf Ebrahimi/xyz/auto_callout,no_start_optimize
4343*22dc650dSSadaf Ebrahimi  abcxyz
4344*22dc650dSSadaf Ebrahimi\= Expect no match
4345*22dc650dSSadaf Ebrahimi  abc
4346*22dc650dSSadaf Ebrahimi  abcxypqr
4347*22dc650dSSadaf Ebrahimi
4348*22dc650dSSadaf Ebrahimi/(*NO_START_OPT)xyz/auto_callout
4349*22dc650dSSadaf Ebrahimi  abcxyz
4350*22dc650dSSadaf Ebrahimi
4351*22dc650dSSadaf Ebrahimi/(?C)ab/
4352*22dc650dSSadaf Ebrahimi  ab
4353*22dc650dSSadaf Ebrahimi  ab\=callout_none
4354*22dc650dSSadaf Ebrahimi
4355*22dc650dSSadaf Ebrahimi/ab/auto_callout
4356*22dc650dSSadaf Ebrahimi  ab
4357*22dc650dSSadaf Ebrahimi  ab\=callout_none
4358*22dc650dSSadaf Ebrahimi
4359*22dc650dSSadaf Ebrahimi/^"((?(?=[a])[^"])|b)*"$/auto_callout
4360*22dc650dSSadaf Ebrahimi    "ab"
4361*22dc650dSSadaf Ebrahimi    "ab"\=callout_none
4362*22dc650dSSadaf Ebrahimi
4363*22dc650dSSadaf Ebrahimi/\d+X|9+Y/
4364*22dc650dSSadaf Ebrahimi    ++++123999\=ps
4365*22dc650dSSadaf Ebrahimi    ++++123999Y\=ps
4366*22dc650dSSadaf Ebrahimi
4367*22dc650dSSadaf Ebrahimi/Z(*F)/
4368*22dc650dSSadaf Ebrahimi\= Expect no match
4369*22dc650dSSadaf Ebrahimi    Z\=ps
4370*22dc650dSSadaf Ebrahimi    ZA\=ps
4371*22dc650dSSadaf Ebrahimi
4372*22dc650dSSadaf Ebrahimi/Z(?!)/
4373*22dc650dSSadaf Ebrahimi\= Expect no match
4374*22dc650dSSadaf Ebrahimi    Z\=ps
4375*22dc650dSSadaf Ebrahimi    ZA\=ps
4376*22dc650dSSadaf Ebrahimi
4377*22dc650dSSadaf Ebrahimi/dog(sbody)?/
4378*22dc650dSSadaf Ebrahimi    dogs\=ps
4379*22dc650dSSadaf Ebrahimi    dogs\=ph
4380*22dc650dSSadaf Ebrahimi
4381*22dc650dSSadaf Ebrahimi/dog(sbody)??/
4382*22dc650dSSadaf Ebrahimi    dogs\=ps
4383*22dc650dSSadaf Ebrahimi    dogs\=ph
4384*22dc650dSSadaf Ebrahimi
4385*22dc650dSSadaf Ebrahimi/dog|dogsbody/
4386*22dc650dSSadaf Ebrahimi    dogs\=ps
4387*22dc650dSSadaf Ebrahimi    dogs\=ph
4388*22dc650dSSadaf Ebrahimi
4389*22dc650dSSadaf Ebrahimi/dogsbody|dog/
4390*22dc650dSSadaf Ebrahimi    dogs\=ps
4391*22dc650dSSadaf Ebrahimi    dogs\=ph
4392*22dc650dSSadaf Ebrahimi
4393*22dc650dSSadaf Ebrahimi/Z(*F)Q|ZXY/
4394*22dc650dSSadaf Ebrahimi    Z\=ps
4395*22dc650dSSadaf Ebrahimi\= Expect no match
4396*22dc650dSSadaf Ebrahimi    ZA\=ps
4397*22dc650dSSadaf Ebrahimi    X\=ps
4398*22dc650dSSadaf Ebrahimi
4399*22dc650dSSadaf Ebrahimi/\bthe cat\b/
4400*22dc650dSSadaf Ebrahimi    the cat\=ps
4401*22dc650dSSadaf Ebrahimi    the cat\=ph
4402*22dc650dSSadaf Ebrahimi
4403*22dc650dSSadaf Ebrahimi/dog(sbody)?/
4404*22dc650dSSadaf Ebrahimi    dogs\=ps
4405*22dc650dSSadaf Ebrahimi    body\=dfa_restart
4406*22dc650dSSadaf Ebrahimi
4407*22dc650dSSadaf Ebrahimi/dog(sbody)?/
4408*22dc650dSSadaf Ebrahimi    dogs\=ph
4409*22dc650dSSadaf Ebrahimi    body\=dfa_restart
4410*22dc650dSSadaf Ebrahimi
4411*22dc650dSSadaf Ebrahimi/abc/
4412*22dc650dSSadaf Ebrahimi   abc\=ps
4413*22dc650dSSadaf Ebrahimi   abc\=ph
4414*22dc650dSSadaf Ebrahimi
4415*22dc650dSSadaf Ebrahimi/abc\K123/
4416*22dc650dSSadaf Ebrahimi    xyzabc123pqr
4417*22dc650dSSadaf Ebrahimi
4418*22dc650dSSadaf Ebrahimi/(?<=abc)123/allusedtext
4419*22dc650dSSadaf Ebrahimi    xyzabc123pqr
4420*22dc650dSSadaf Ebrahimi    xyzabc12\=ps
4421*22dc650dSSadaf Ebrahimi    xyzabc12\=ph
4422*22dc650dSSadaf Ebrahimi
4423*22dc650dSSadaf Ebrahimi/\babc\b/allusedtext
4424*22dc650dSSadaf Ebrahimi    +++abc+++
4425*22dc650dSSadaf Ebrahimi    +++ab\=ps
4426*22dc650dSSadaf Ebrahimi    +++ab\=ph
4427*22dc650dSSadaf Ebrahimi
4428*22dc650dSSadaf Ebrahimi/(?=C)/g,aftertext
4429*22dc650dSSadaf Ebrahimi    ABCDECBA
4430*22dc650dSSadaf Ebrahimi
4431*22dc650dSSadaf Ebrahimi/(abc|def|xyz)/I
4432*22dc650dSSadaf Ebrahimi    terhjk;abcdaadsfe
4433*22dc650dSSadaf Ebrahimi    the quick xyz brown fox
4434*22dc650dSSadaf Ebrahimi\= Expect no match
4435*22dc650dSSadaf Ebrahimi    thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
4436*22dc650dSSadaf Ebrahimi
4437*22dc650dSSadaf Ebrahimi/(abc|def|xyz)/I,no_start_optimize
4438*22dc650dSSadaf Ebrahimi    terhjk;abcdaadsfe
4439*22dc650dSSadaf Ebrahimi    the quick xyz brown fox
4440*22dc650dSSadaf Ebrahimi\= Expect no match
4441*22dc650dSSadaf Ebrahimi    thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
4442*22dc650dSSadaf Ebrahimi
4443*22dc650dSSadaf Ebrahimi/abcd*/aftertext
4444*22dc650dSSadaf Ebrahimi    xxxxabcd\=ps
4445*22dc650dSSadaf Ebrahimi    xxxxabcd\=ph
4446*22dc650dSSadaf Ebrahimi    dddxxx\=dfa_restart
4447*22dc650dSSadaf Ebrahimi    xxxxabcd\=ph
4448*22dc650dSSadaf Ebrahimi    xxx\=dfa_restart
4449*22dc650dSSadaf Ebrahimi
4450*22dc650dSSadaf Ebrahimi/abcd*/i
4451*22dc650dSSadaf Ebrahimi    xxxxabcd\=ps
4452*22dc650dSSadaf Ebrahimi    xxxxabcd\=ph
4453*22dc650dSSadaf Ebrahimi    XXXXABCD\=ps
4454*22dc650dSSadaf Ebrahimi    XXXXABCD\=ph
4455*22dc650dSSadaf Ebrahimi
4456*22dc650dSSadaf Ebrahimi/abc\d*/
4457*22dc650dSSadaf Ebrahimi    xxxxabc1\=ps
4458*22dc650dSSadaf Ebrahimi    xxxxabc1\=ph
4459*22dc650dSSadaf Ebrahimi
4460*22dc650dSSadaf Ebrahimi/abc[de]*/
4461*22dc650dSSadaf Ebrahimi    xxxxabcde\=ps
4462*22dc650dSSadaf Ebrahimi    xxxxabcde\=ph
4463*22dc650dSSadaf Ebrahimi
4464*22dc650dSSadaf Ebrahimi/(?:(?1)|B)(A(*F)|C)/
4465*22dc650dSSadaf Ebrahimi    ABCD
4466*22dc650dSSadaf Ebrahimi    CCD
4467*22dc650dSSadaf Ebrahimi\= Expect no match
4468*22dc650dSSadaf Ebrahimi    CAD
4469*22dc650dSSadaf Ebrahimi
4470*22dc650dSSadaf Ebrahimi/^(?:(?1)|B)(A(*F)|C)/
4471*22dc650dSSadaf Ebrahimi    CCD
4472*22dc650dSSadaf Ebrahimi    BCD
4473*22dc650dSSadaf Ebrahimi\= Expect no match
4474*22dc650dSSadaf Ebrahimi    ABCD
4475*22dc650dSSadaf Ebrahimi    CAD
4476*22dc650dSSadaf Ebrahimi    BAD
4477*22dc650dSSadaf Ebrahimi
4478*22dc650dSSadaf Ebrahimi/^(?!a(*SKIP)b)/
4479*22dc650dSSadaf Ebrahimi    ac
4480*22dc650dSSadaf Ebrahimi
4481*22dc650dSSadaf Ebrahimi/^(?=a(*SKIP)b|ac)/
4482*22dc650dSSadaf Ebrahimi    ac
4483*22dc650dSSadaf Ebrahimi
4484*22dc650dSSadaf Ebrahimi/^(?=a(*THEN)b|ac)/
4485*22dc650dSSadaf Ebrahimi    ac
4486*22dc650dSSadaf Ebrahimi
4487*22dc650dSSadaf Ebrahimi/^(?=a(*PRUNE)b)/
4488*22dc650dSSadaf Ebrahimi    ab
4489*22dc650dSSadaf Ebrahimi
4490*22dc650dSSadaf Ebrahimi/^(?(?!a(*SKIP)b))/
4491*22dc650dSSadaf Ebrahimi    ac
4492*22dc650dSSadaf Ebrahimi
4493*22dc650dSSadaf Ebrahimi/(?<=abc)def/allusedtext
4494*22dc650dSSadaf Ebrahimi    abc\=ph
4495*22dc650dSSadaf Ebrahimi
4496*22dc650dSSadaf Ebrahimi/abc$/
4497*22dc650dSSadaf Ebrahimi    abc
4498*22dc650dSSadaf Ebrahimi    abc\=ps
4499*22dc650dSSadaf Ebrahimi    abc\=ph
4500*22dc650dSSadaf Ebrahimi
4501*22dc650dSSadaf Ebrahimi/abc$/m
4502*22dc650dSSadaf Ebrahimi    abc
4503*22dc650dSSadaf Ebrahimi    abc\n
4504*22dc650dSSadaf Ebrahimi    abc\=ph
4505*22dc650dSSadaf Ebrahimi    abc\n\=ph
4506*22dc650dSSadaf Ebrahimi    abc\=ps
4507*22dc650dSSadaf Ebrahimi    abc\n\=ps
4508*22dc650dSSadaf Ebrahimi
4509*22dc650dSSadaf Ebrahimi/abc\z/
4510*22dc650dSSadaf Ebrahimi    abc
4511*22dc650dSSadaf Ebrahimi    abc\=ps
4512*22dc650dSSadaf Ebrahimi    abc\=ph
4513*22dc650dSSadaf Ebrahimi
4514*22dc650dSSadaf Ebrahimi/abc\Z/
4515*22dc650dSSadaf Ebrahimi    abc
4516*22dc650dSSadaf Ebrahimi    abc\=ps
4517*22dc650dSSadaf Ebrahimi    abc\=ph
4518*22dc650dSSadaf Ebrahimi
4519*22dc650dSSadaf Ebrahimi/abc\b/
4520*22dc650dSSadaf Ebrahimi    abc
4521*22dc650dSSadaf Ebrahimi    abc\=ps
4522*22dc650dSSadaf Ebrahimi    abc\=ph
4523*22dc650dSSadaf Ebrahimi
4524*22dc650dSSadaf Ebrahimi/abc\B/
4525*22dc650dSSadaf Ebrahimi    abc\=ps
4526*22dc650dSSadaf Ebrahimi    abc\=ph
4527*22dc650dSSadaf Ebrahimi\= Expect no match
4528*22dc650dSSadaf Ebrahimi    abc
4529*22dc650dSSadaf Ebrahimi
4530*22dc650dSSadaf Ebrahimi/.+/
4531*22dc650dSSadaf Ebrahimi    abc\=offset=0
4532*22dc650dSSadaf Ebrahimi    abc\=offset=1
4533*22dc650dSSadaf Ebrahimi    abc\=offset=2
4534*22dc650dSSadaf Ebrahimi\= Bad offsets
4535*22dc650dSSadaf Ebrahimi    abc\=offset=4
4536*22dc650dSSadaf Ebrahimi    abc\=offset=-4
4537*22dc650dSSadaf Ebrahimi\= Expect no match
4538*22dc650dSSadaf Ebrahimi    abc\=offset=3
4539*22dc650dSSadaf Ebrahimi
4540*22dc650dSSadaf Ebrahimi/^(?:a)++\w/
4541*22dc650dSSadaf Ebrahimi     aaaab
4542*22dc650dSSadaf Ebrahimi\= Expect no match
4543*22dc650dSSadaf Ebrahimi     aaaa
4544*22dc650dSSadaf Ebrahimi     bbb
4545*22dc650dSSadaf Ebrahimi
4546*22dc650dSSadaf Ebrahimi/^(?:aa|(?:a)++\w)/
4547*22dc650dSSadaf Ebrahimi     aaaab
4548*22dc650dSSadaf Ebrahimi     aaaa
4549*22dc650dSSadaf Ebrahimi\= Expect no match
4550*22dc650dSSadaf Ebrahimi     bbb
4551*22dc650dSSadaf Ebrahimi
4552*22dc650dSSadaf Ebrahimi/^(?:a)*+\w/
4553*22dc650dSSadaf Ebrahimi     aaaab
4554*22dc650dSSadaf Ebrahimi     bbb
4555*22dc650dSSadaf Ebrahimi\= Expect no match
4556*22dc650dSSadaf Ebrahimi     aaaa
4557*22dc650dSSadaf Ebrahimi
4558*22dc650dSSadaf Ebrahimi/^(a)++\w/
4559*22dc650dSSadaf Ebrahimi     aaaab
4560*22dc650dSSadaf Ebrahimi\= Expect no match
4561*22dc650dSSadaf Ebrahimi     aaaa
4562*22dc650dSSadaf Ebrahimi     bbb
4563*22dc650dSSadaf Ebrahimi
4564*22dc650dSSadaf Ebrahimi/^(a|)++\w/
4565*22dc650dSSadaf Ebrahimi     aaaab
4566*22dc650dSSadaf Ebrahimi\= Expect no match
4567*22dc650dSSadaf Ebrahimi     aaaa
4568*22dc650dSSadaf Ebrahimi     bbb
4569*22dc650dSSadaf Ebrahimi
4570*22dc650dSSadaf Ebrahimi/(?=abc){3}abc/aftertext
4571*22dc650dSSadaf Ebrahimi    abcabcabc
4572*22dc650dSSadaf Ebrahimi\= Expect no match
4573*22dc650dSSadaf Ebrahimi    xyz
4574*22dc650dSSadaf Ebrahimi
4575*22dc650dSSadaf Ebrahimi/(?=abc)+abc/aftertext
4576*22dc650dSSadaf Ebrahimi    abcabcabc
4577*22dc650dSSadaf Ebrahimi\= Expect no match
4578*22dc650dSSadaf Ebrahimi    xyz
4579*22dc650dSSadaf Ebrahimi
4580*22dc650dSSadaf Ebrahimi/(?=abc)++abc/aftertext
4581*22dc650dSSadaf Ebrahimi    abcabcabc
4582*22dc650dSSadaf Ebrahimi\= Expect no match
4583*22dc650dSSadaf Ebrahimi    xyz
4584*22dc650dSSadaf Ebrahimi
4585*22dc650dSSadaf Ebrahimi/(?=abc){0}xyz/
4586*22dc650dSSadaf Ebrahimi    xyz
4587*22dc650dSSadaf Ebrahimi
4588*22dc650dSSadaf Ebrahimi/(?=abc){1}xyz/
4589*22dc650dSSadaf Ebrahimi\= Expect no match
4590*22dc650dSSadaf Ebrahimi    xyz
4591*22dc650dSSadaf Ebrahimi
4592*22dc650dSSadaf Ebrahimi/(?=(a))?./
4593*22dc650dSSadaf Ebrahimi    ab
4594*22dc650dSSadaf Ebrahimi    bc
4595*22dc650dSSadaf Ebrahimi
4596*22dc650dSSadaf Ebrahimi/(?=(a))??./
4597*22dc650dSSadaf Ebrahimi    ab
4598*22dc650dSSadaf Ebrahimi    bc
4599*22dc650dSSadaf Ebrahimi
4600*22dc650dSSadaf Ebrahimi/^(?=(a)){0}b(?1)/
4601*22dc650dSSadaf Ebrahimi    backgammon
4602*22dc650dSSadaf Ebrahimi
4603*22dc650dSSadaf Ebrahimi/^(?=(?1))?[az]([abc])d/
4604*22dc650dSSadaf Ebrahimi    abd
4605*22dc650dSSadaf Ebrahimi    zcdxx
4606*22dc650dSSadaf Ebrahimi
4607*22dc650dSSadaf Ebrahimi/^(?!a){0}\w+/
4608*22dc650dSSadaf Ebrahimi    aaaaa
4609*22dc650dSSadaf Ebrahimi
4610*22dc650dSSadaf Ebrahimi/(?<=(abc))?xyz/
4611*22dc650dSSadaf Ebrahimi    abcxyz
4612*22dc650dSSadaf Ebrahimi    pqrxyz
4613*22dc650dSSadaf Ebrahimi
4614*22dc650dSSadaf Ebrahimi/((?2))((?1))/
4615*22dc650dSSadaf Ebrahimi    abc
4616*22dc650dSSadaf Ebrahimi
4617*22dc650dSSadaf Ebrahimi/(?(R)a+|(?R)b)/
4618*22dc650dSSadaf Ebrahimi    aaaabcde
4619*22dc650dSSadaf Ebrahimi
4620*22dc650dSSadaf Ebrahimi/(?(R)a+|((?R))b)/
4621*22dc650dSSadaf Ebrahimi    aaaabcde
4622*22dc650dSSadaf Ebrahimi
4623*22dc650dSSadaf Ebrahimi/((?(R)a+|(?1)b))/
4624*22dc650dSSadaf Ebrahimi    aaaabcde
4625*22dc650dSSadaf Ebrahimi
4626*22dc650dSSadaf Ebrahimi/((?(R2)a+|(?1)b))()/
4627*22dc650dSSadaf Ebrahimi    aaaabcde
4628*22dc650dSSadaf Ebrahimi
4629*22dc650dSSadaf Ebrahimi/(?(R)a*(?1)|((?R))b)/
4630*22dc650dSSadaf Ebrahimi    aaaabcde
4631*22dc650dSSadaf Ebrahimi
4632*22dc650dSSadaf Ebrahimi/(a+)/no_auto_possess
4633*22dc650dSSadaf Ebrahimi    aaaa\=ovector=3
4634*22dc650dSSadaf Ebrahimi    aaaa\=ovector=4
4635*22dc650dSSadaf Ebrahimi
4636*22dc650dSSadaf Ebrahimi/^\R/
4637*22dc650dSSadaf Ebrahimi    \r\=ps
4638*22dc650dSSadaf Ebrahimi    \r\=ph
4639*22dc650dSSadaf Ebrahimi
4640*22dc650dSSadaf Ebrahimi/^\R{2,3}x/
4641*22dc650dSSadaf Ebrahimi    \r\=ps
4642*22dc650dSSadaf Ebrahimi    \r\=ph
4643*22dc650dSSadaf Ebrahimi    \r\r\=ps
4644*22dc650dSSadaf Ebrahimi    \r\r\=ph
4645*22dc650dSSadaf Ebrahimi    \r\r\r\=ps
4646*22dc650dSSadaf Ebrahimi    \r\r\r\=ph
4647*22dc650dSSadaf Ebrahimi    \r\rx
4648*22dc650dSSadaf Ebrahimi    \r\r\rx
4649*22dc650dSSadaf Ebrahimi
4650*22dc650dSSadaf Ebrahimi/^\R{2,3}?x/
4651*22dc650dSSadaf Ebrahimi    \r\=ps
4652*22dc650dSSadaf Ebrahimi    \r\=ph
4653*22dc650dSSadaf Ebrahimi    \r\r\=ps
4654*22dc650dSSadaf Ebrahimi    \r\r\=ph
4655*22dc650dSSadaf Ebrahimi    \r\r\r\=ps
4656*22dc650dSSadaf Ebrahimi    \r\r\r\=ph
4657*22dc650dSSadaf Ebrahimi    \r\rx
4658*22dc650dSSadaf Ebrahimi    \r\r\rx
4659*22dc650dSSadaf Ebrahimi
4660*22dc650dSSadaf Ebrahimi/^\R?x/
4661*22dc650dSSadaf Ebrahimi    \r\=ps
4662*22dc650dSSadaf Ebrahimi    \r\=ph
4663*22dc650dSSadaf Ebrahimi    x
4664*22dc650dSSadaf Ebrahimi    \rx
4665*22dc650dSSadaf Ebrahimi
4666*22dc650dSSadaf Ebrahimi/^\R+x/
4667*22dc650dSSadaf Ebrahimi    \r\=ps
4668*22dc650dSSadaf Ebrahimi    \r\=ph
4669*22dc650dSSadaf Ebrahimi    \r\n\=ps
4670*22dc650dSSadaf Ebrahimi    \r\n\=ph
4671*22dc650dSSadaf Ebrahimi    \rx
4672*22dc650dSSadaf Ebrahimi
4673*22dc650dSSadaf Ebrahimi/^a$/newline=crlf
4674*22dc650dSSadaf Ebrahimi    a\r\=ps
4675*22dc650dSSadaf Ebrahimi    a\r\=ph
4676*22dc650dSSadaf Ebrahimi
4677*22dc650dSSadaf Ebrahimi/^a$/m,newline=crlf
4678*22dc650dSSadaf Ebrahimi    a\r\=ps
4679*22dc650dSSadaf Ebrahimi    a\r\=ph
4680*22dc650dSSadaf Ebrahimi
4681*22dc650dSSadaf Ebrahimi/^(a$|a\r)/newline=crlf
4682*22dc650dSSadaf Ebrahimi    a\r\=ps
4683*22dc650dSSadaf Ebrahimi    a\r\=ph
4684*22dc650dSSadaf Ebrahimi
4685*22dc650dSSadaf Ebrahimi/^(a$|a\r)/m,newline=crlf
4686*22dc650dSSadaf Ebrahimi    a\r\=ps
4687*22dc650dSSadaf Ebrahimi    a\r\=ph
4688*22dc650dSSadaf Ebrahimi
4689*22dc650dSSadaf Ebrahimi/./newline=crlf
4690*22dc650dSSadaf Ebrahimi    \r\=ps
4691*22dc650dSSadaf Ebrahimi    \r\=ph
4692*22dc650dSSadaf Ebrahimi
4693*22dc650dSSadaf Ebrahimi/.{2,3}/newline=crlf
4694*22dc650dSSadaf Ebrahimi    \r\=ps
4695*22dc650dSSadaf Ebrahimi    \r\=ph
4696*22dc650dSSadaf Ebrahimi    \r\r\=ps
4697*22dc650dSSadaf Ebrahimi    \r\r\=ph
4698*22dc650dSSadaf Ebrahimi    \r\r\r\=ps
4699*22dc650dSSadaf Ebrahimi    \r\r\r\=ph
4700*22dc650dSSadaf Ebrahimi
4701*22dc650dSSadaf Ebrahimi/.{2,3}?/newline=crlf
4702*22dc650dSSadaf Ebrahimi    \r\=ps
4703*22dc650dSSadaf Ebrahimi    \r\=ph
4704*22dc650dSSadaf Ebrahimi    \r\r\=ps
4705*22dc650dSSadaf Ebrahimi    \r\r\=ph
4706*22dc650dSSadaf Ebrahimi    \r\r\r\=ps
4707*22dc650dSSadaf Ebrahimi    \r\r\r\=ph
4708*22dc650dSSadaf Ebrahimi
4709*22dc650dSSadaf Ebrahimi# Test simple validity check for restarts
4710*22dc650dSSadaf Ebrahimi
4711*22dc650dSSadaf Ebrahimi/abcdef/
4712*22dc650dSSadaf Ebrahimi   abc\=dfa_restart
4713*22dc650dSSadaf Ebrahimi
4714*22dc650dSSadaf Ebrahimi/<H((?(?!<H|F>)(.)|(?R))++)*F>/
4715*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.
4716*22dc650dSSadaf Ebrahimi
4717*22dc650dSSadaf Ebrahimi/^(?>.{4})abc|^\w\w.xabcd/
4718*22dc650dSSadaf Ebrahimi    xxxxabcd
4719*22dc650dSSadaf Ebrahimi    xx\xa0xabcd
4720*22dc650dSSadaf Ebrahimi
4721*22dc650dSSadaf Ebrahimi/^(.{4}){2}+abc|^\w\w.x\w\w\w\wabcd/
4722*22dc650dSSadaf Ebrahimi    xxxxxxxxabcd
4723*22dc650dSSadaf Ebrahimi    xx\xa0xxxxxabcd
4724*22dc650dSSadaf Ebrahimi
4725*22dc650dSSadaf Ebrahimi/abcd/
4726*22dc650dSSadaf Ebrahimi    abcd\=ovector=0
4727*22dc650dSSadaf Ebrahimi
4728*22dc650dSSadaf Ebrahimi# These tests show up auto-possessification
4729*22dc650dSSadaf Ebrahimi
4730*22dc650dSSadaf Ebrahimi/[ab]*/
4731*22dc650dSSadaf Ebrahimi    aaaa
4732*22dc650dSSadaf Ebrahimi
4733*22dc650dSSadaf Ebrahimi/[ab]*?/
4734*22dc650dSSadaf Ebrahimi    aaaa
4735*22dc650dSSadaf Ebrahimi
4736*22dc650dSSadaf Ebrahimi/[ab]?/
4737*22dc650dSSadaf Ebrahimi    aaaa
4738*22dc650dSSadaf Ebrahimi
4739*22dc650dSSadaf Ebrahimi/[ab]??/
4740*22dc650dSSadaf Ebrahimi    aaaa
4741*22dc650dSSadaf Ebrahimi
4742*22dc650dSSadaf Ebrahimi/[ab]+/
4743*22dc650dSSadaf Ebrahimi    aaaa
4744*22dc650dSSadaf Ebrahimi
4745*22dc650dSSadaf Ebrahimi/[ab]+?/
4746*22dc650dSSadaf Ebrahimi    aaaa
4747*22dc650dSSadaf Ebrahimi
4748*22dc650dSSadaf Ebrahimi/[ab]{2,3}/
4749*22dc650dSSadaf Ebrahimi    aaaa
4750*22dc650dSSadaf Ebrahimi
4751*22dc650dSSadaf Ebrahimi/[ab]{2,3}?/
4752*22dc650dSSadaf Ebrahimi    aaaa
4753*22dc650dSSadaf Ebrahimi
4754*22dc650dSSadaf Ebrahimi/[ab]{2,}/
4755*22dc650dSSadaf Ebrahimi    aaaa
4756*22dc650dSSadaf Ebrahimi
4757*22dc650dSSadaf Ebrahimi/[ab]{2,}?/
4758*22dc650dSSadaf Ebrahimi    aaaa
4759*22dc650dSSadaf Ebrahimi
4760*22dc650dSSadaf Ebrahimi'\A(?:[^\"]++|\"(?:[^\"]*+|\"\")*+\")++'
4761*22dc650dSSadaf Ebrahimi    NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
4762*22dc650dSSadaf Ebrahimi
4763*22dc650dSSadaf Ebrahimi'\A(?:[^\"]++|\"(?:[^\"]++|\"\")*+\")++'
4764*22dc650dSSadaf Ebrahimi    NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
4765*22dc650dSSadaf Ebrahimi
4766*22dc650dSSadaf Ebrahimi/abc(?=xyz)/allusedtext
4767*22dc650dSSadaf Ebrahimi    abcxyzpqr
4768*22dc650dSSadaf Ebrahimi    abcxyzpqr\=aftertext
4769*22dc650dSSadaf Ebrahimi
4770*22dc650dSSadaf Ebrahimi/(?<=pqr)abc(?=xyz)/allusedtext
4771*22dc650dSSadaf Ebrahimi    xyzpqrabcxyzpqr
4772*22dc650dSSadaf Ebrahimi    xyzpqrabcxyzpqr\=aftertext
4773*22dc650dSSadaf Ebrahimi
4774*22dc650dSSadaf Ebrahimi/a\b/
4775*22dc650dSSadaf Ebrahimi    a.\=allusedtext
4776*22dc650dSSadaf Ebrahimi    a\=allusedtext
4777*22dc650dSSadaf Ebrahimi
4778*22dc650dSSadaf Ebrahimi/abc(?=abcde)(?=ab)/allusedtext
4779*22dc650dSSadaf Ebrahimi    abcabcdefg
4780*22dc650dSSadaf Ebrahimi
4781*22dc650dSSadaf Ebrahimi/a*?b*?/
4782*22dc650dSSadaf Ebrahimi    ab
4783*22dc650dSSadaf Ebrahimi
4784*22dc650dSSadaf Ebrahimi/(*NOTEMPTY)a*?b*?/
4785*22dc650dSSadaf Ebrahimi    ab
4786*22dc650dSSadaf Ebrahimi    ba
4787*22dc650dSSadaf Ebrahimi    cb
4788*22dc650dSSadaf Ebrahimi
4789*22dc650dSSadaf Ebrahimi/(*NOTEMPTY_ATSTART)a*?b*?/aftertext
4790*22dc650dSSadaf Ebrahimi    ab
4791*22dc650dSSadaf Ebrahimi    cdab
4792*22dc650dSSadaf Ebrahimi
4793*22dc650dSSadaf Ebrahimi/(a)(b)|(c)/
4794*22dc650dSSadaf Ebrahimi    XcX\=ovector=2,get=1,get=2,get=3,get=4,getall
4795*22dc650dSSadaf Ebrahimi
4796*22dc650dSSadaf Ebrahimi/(?<A>aa)/
4797*22dc650dSSadaf Ebrahimi    aa\=get=A
4798*22dc650dSSadaf Ebrahimi    aa\=copy=A
4799*22dc650dSSadaf Ebrahimi
4800*22dc650dSSadaf Ebrahimi/a+/no_auto_possess
4801*22dc650dSSadaf Ebrahimi    a\=ovector=2,get=1,get=2,getall
4802*22dc650dSSadaf Ebrahimi    aaa\=ovector=2,get=1,get=2,getall
4803*22dc650dSSadaf Ebrahimi
4804*22dc650dSSadaf Ebrahimi/a(b)c(d)/
4805*22dc650dSSadaf Ebrahimi    abc\=ph,copy=0,copy=1,getall
4806*22dc650dSSadaf Ebrahimi
4807*22dc650dSSadaf Ebrahimi/ab(?C" any text with spaces ")cde/B
4808*22dc650dSSadaf Ebrahimi    abcde
4809*22dc650dSSadaf Ebrahimi    12abcde
4810*22dc650dSSadaf Ebrahimi
4811*22dc650dSSadaf Ebrahimi/^a(b)c(?C1)def/
4812*22dc650dSSadaf Ebrahimi      abcdef
4813*22dc650dSSadaf Ebrahimi
4814*22dc650dSSadaf Ebrahimi/^a(b)c(?C"AB")def/
4815*22dc650dSSadaf Ebrahimi      abcdef
4816*22dc650dSSadaf Ebrahimi
4817*22dc650dSSadaf Ebrahimi/^a(b)c(?C1)def/
4818*22dc650dSSadaf Ebrahimi      abcdef\=callout_capture
4819*22dc650dSSadaf Ebrahimi
4820*22dc650dSSadaf Ebrahimi/^a(b)c(?C{AB})def/B
4821*22dc650dSSadaf Ebrahimi      abcdef\=callout_capture
4822*22dc650dSSadaf Ebrahimi
4823*22dc650dSSadaf Ebrahimi/^(?(?C25)(?=abc)abcd|xyz)/B
4824*22dc650dSSadaf Ebrahimi    abcdefg
4825*22dc650dSSadaf Ebrahimi    xyz123
4826*22dc650dSSadaf Ebrahimi
4827*22dc650dSSadaf Ebrahimi/^(?(?C$abc$)(?=abc)abcd|xyz)/B
4828*22dc650dSSadaf Ebrahimi    abcdefg
4829*22dc650dSSadaf Ebrahimi    xyz123
4830*22dc650dSSadaf Ebrahimi
4831*22dc650dSSadaf Ebrahimi/^ab(?C'first')cd(?C"second")ef/
4832*22dc650dSSadaf Ebrahimi    abcdefg
4833*22dc650dSSadaf Ebrahimi
4834*22dc650dSSadaf Ebrahimi/(?:a(?C`code`)){3}X/
4835*22dc650dSSadaf Ebrahimi    aaaXY
4836*22dc650dSSadaf Ebrahimi
4837*22dc650dSSadaf Ebrahimi# Binary zero in callout string
4838*22dc650dSSadaf Ebrahimi/"a(?C'x" 00 "z')b"/hex
4839*22dc650dSSadaf Ebrahimi    abcdefgh
4840*22dc650dSSadaf Ebrahimi
4841*22dc650dSSadaf Ebrahimi/(?(?!)a|b)/
4842*22dc650dSSadaf Ebrahimi    bbb
4843*22dc650dSSadaf Ebrahimi\= Expect no match
4844*22dc650dSSadaf Ebrahimi    aaa
4845*22dc650dSSadaf Ebrahimi
4846*22dc650dSSadaf Ebrahimi/^/gm
4847*22dc650dSSadaf Ebrahimi    \n\n\n
4848*22dc650dSSadaf Ebrahimi
4849*22dc650dSSadaf Ebrahimi/^/gm,alt_circumflex
4850*22dc650dSSadaf Ebrahimi    \n\n\n
4851*22dc650dSSadaf Ebrahimi
4852*22dc650dSSadaf Ebrahimi/abc/use_offset_limit
4853*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=100
4854*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=9
4855*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=4
4856*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=4,offset=4
4857*22dc650dSSadaf Ebrahimi\= Expect no match
4858*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=4,offset=5
4859*22dc650dSSadaf Ebrahimi    1234abcde\=offset_limit=3
4860*22dc650dSSadaf Ebrahimi
4861*22dc650dSSadaf Ebrahimi/(?<=abc)/use_offset_limit
4862*22dc650dSSadaf Ebrahimi    1234abc\=offset_limit=7
4863*22dc650dSSadaf Ebrahimi\= Expect no match
4864*22dc650dSSadaf Ebrahimi    1234abc\=offset_limit=6
4865*22dc650dSSadaf Ebrahimi
4866*22dc650dSSadaf Ebrahimi/abcd/null_context
4867*22dc650dSSadaf Ebrahimi    abcd\=null_context
4868*22dc650dSSadaf Ebrahimi
4869*22dc650dSSadaf Ebrahimi/()()a+/no_auto_possess
4870*22dc650dSSadaf Ebrahimi    aaa\=allcaptures
4871*22dc650dSSadaf Ebrahimi    a\=allcaptures
4872*22dc650dSSadaf Ebrahimi
4873*22dc650dSSadaf Ebrahimi/(*LIMIT_DEPTH=100)^((.)(?1)|.)$/
4874*22dc650dSSadaf Ebrahimi\= Expect depth limit exceeded
4875*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]
4876*22dc650dSSadaf Ebrahimi
4877*22dc650dSSadaf Ebrahimi/(*LIMIT_HEAP=0)^((.)(?1)|.)$/
4878*22dc650dSSadaf Ebrahimi\= Expect heap limit exceeded
4879*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]
4880*22dc650dSSadaf Ebrahimi
4881*22dc650dSSadaf Ebrahimi/(*LIMIT_HEAP=50000)^((.)(?1)|.)$/
4882*22dc650dSSadaf Ebrahimi\= Expect success
4883*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]
4884*22dc650dSSadaf Ebrahimi
4885*22dc650dSSadaf Ebrahimi/(02-)?[0-9]{3}-[0-9]{3}/
4886*22dc650dSSadaf Ebrahimi    02-123-123
4887*22dc650dSSadaf Ebrahimi
4888*22dc650dSSadaf Ebrahimi/^(a(?2))(b)(?1)/
4889*22dc650dSSadaf Ebrahimi    abbab\=find_limits
4890*22dc650dSSadaf Ebrahimi
4891*22dc650dSSadaf Ebrahimi/abc/endanchored
4892*22dc650dSSadaf Ebrahimi    xyzabc
4893*22dc650dSSadaf Ebrahimi\= Expect no match
4894*22dc650dSSadaf Ebrahimi    xyzabcdef
4895*22dc650dSSadaf Ebrahimi\= Expect error
4896*22dc650dSSadaf Ebrahimi    xyzabc\=ph
4897*22dc650dSSadaf Ebrahimi
4898*22dc650dSSadaf Ebrahimi/abc/
4899*22dc650dSSadaf Ebrahimi    xyzabc\=endanchored
4900*22dc650dSSadaf Ebrahimi\= Expect no match
4901*22dc650dSSadaf Ebrahimi    xyzabcdef\=endanchored
4902*22dc650dSSadaf Ebrahimi\= Expect error
4903*22dc650dSSadaf Ebrahimi    xyzabc\=ps,endanchored
4904*22dc650dSSadaf Ebrahimi
4905*22dc650dSSadaf Ebrahimi/abc|bcd/endanchored
4906*22dc650dSSadaf Ebrahimi    xyzabcd
4907*22dc650dSSadaf Ebrahimi\= Expect no match
4908*22dc650dSSadaf Ebrahimi    xyzabcdef
4909*22dc650dSSadaf Ebrahimi
4910*22dc650dSSadaf Ebrahimi/(*NUL)^.*/
4911*22dc650dSSadaf Ebrahimi    a\nb\x00ccc
4912*22dc650dSSadaf Ebrahimi
4913*22dc650dSSadaf Ebrahimi/(*NUL)^.*/s
4914*22dc650dSSadaf Ebrahimi    a\nb\x00ccc
4915*22dc650dSSadaf Ebrahimi
4916*22dc650dSSadaf Ebrahimi/^x/m,newline=nul
4917*22dc650dSSadaf Ebrahimi    ab\x00xy
4918*22dc650dSSadaf Ebrahimi
4919*22dc650dSSadaf Ebrahimi/'#comment' 0d 0a 00 '^x\' 0a 'y'/x,newline=nul,hex
4920*22dc650dSSadaf Ebrahimi    x\nyz
4921*22dc650dSSadaf Ebrahimi
4922*22dc650dSSadaf Ebrahimi/(*NUL)^X\NY/
4923*22dc650dSSadaf Ebrahimi    X\nY
4924*22dc650dSSadaf Ebrahimi    X\rY
4925*22dc650dSSadaf Ebrahimi\= Expect no match
4926*22dc650dSSadaf Ebrahimi    X\x00Y
4927*22dc650dSSadaf Ebrahimi
4928*22dc650dSSadaf Ebrahimi/(?<=abc|)/
4929*22dc650dSSadaf Ebrahimi    abcde\=aftertext
4930*22dc650dSSadaf Ebrahimi
4931*22dc650dSSadaf Ebrahimi/(?<=|abc)/
4932*22dc650dSSadaf Ebrahimi    abcde\=aftertext
4933*22dc650dSSadaf Ebrahimi
4934*22dc650dSSadaf Ebrahimi/(?<=abc|)/endanchored
4935*22dc650dSSadaf Ebrahimi    abcde\=aftertext
4936*22dc650dSSadaf Ebrahimi
4937*22dc650dSSadaf Ebrahimi/(?<=|abc)/endanchored
4938*22dc650dSSadaf Ebrahimi    abcde\=aftertext
4939*22dc650dSSadaf Ebrahimi
4940*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
4941*22dc650dSSadaf Ebrahimi\= Expect limit exceeded
4942*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]?););
4943*22dc650dSSadaf Ebrahimi
4944*22dc650dSSadaf Ebrahimi/\n/firstline
4945*22dc650dSSadaf Ebrahimi    xyz\nabc
4946*22dc650dSSadaf Ebrahimi
4947*22dc650dSSadaf Ebrahimi/\nabc/firstline
4948*22dc650dSSadaf Ebrahimi    xyz\nabc
4949*22dc650dSSadaf Ebrahimi
4950*22dc650dSSadaf Ebrahimi/\x{0a}abc/firstline,newline=crlf
4951*22dc650dSSadaf Ebrahimi\= Expect no match
4952*22dc650dSSadaf Ebrahimi    xyz\r\nabc
4953*22dc650dSSadaf Ebrahimi
4954*22dc650dSSadaf Ebrahimi/[abc]/firstline
4955*22dc650dSSadaf Ebrahimi\= Expect no match
4956*22dc650dSSadaf Ebrahimi    \na
4957*22dc650dSSadaf Ebrahimi
4958*22dc650dSSadaf Ebrahimi/foobar/
4959*22dc650dSSadaf Ebrahimi    the foobar thing\=copy_matched_subject
4960*22dc650dSSadaf Ebrahimi    the foobar thing\=copy_matched_subject,zero_terminate
4961*22dc650dSSadaf Ebrahimi
4962*22dc650dSSadaf Ebrahimi/foobar/g
4963*22dc650dSSadaf Ebrahimi    the foobar thing foobar again\=copy_matched_subject
4964*22dc650dSSadaf Ebrahimi
4965*22dc650dSSadaf Ebrahimi/(?(VERSION>=0)^B0W)/
4966*22dc650dSSadaf Ebrahimi    B0W-W0W
4967*22dc650dSSadaf Ebrahimi\= Expect no match
4968*22dc650dSSadaf Ebrahimi    0
4969*22dc650dSSadaf Ebrahimi
4970*22dc650dSSadaf Ebrahimi/(?(VERSION>=1000)^B0W|W0W)/
4971*22dc650dSSadaf Ebrahimi    B0W-W0W
4972*22dc650dSSadaf Ebrahimi\= Expect no match
4973*22dc650dSSadaf Ebrahimi    0
4974*22dc650dSSadaf Ebrahimi
4975*22dc650dSSadaf Ebrahimi/(?<=pqr)abc(?=xyz)/
4976*22dc650dSSadaf Ebrahimi    123pqrabcxy\=ps,allusedtext
4977*22dc650dSSadaf Ebrahimi    123pqrabcxyz\=ps,allusedtext
4978*22dc650dSSadaf Ebrahimi
4979*22dc650dSSadaf Ebrahimi/(?>a+b)/
4980*22dc650dSSadaf Ebrahimi    aaaa\=ps
4981*22dc650dSSadaf Ebrahimi    aaaab\=ps
4982*22dc650dSSadaf Ebrahimi
4983*22dc650dSSadaf Ebrahimi/(abc)(?1)/
4984*22dc650dSSadaf Ebrahimi    abca\=ps
4985*22dc650dSSadaf Ebrahimi    abcabc\=ps
4986*22dc650dSSadaf Ebrahimi
4987*22dc650dSSadaf Ebrahimi/(?(?=abc).*|Z)/
4988*22dc650dSSadaf Ebrahimi    ab\=ps
4989*22dc650dSSadaf Ebrahimi    abcxyz\=ps
4990*22dc650dSSadaf Ebrahimi
4991*22dc650dSSadaf Ebrahimi/(abc)++x/
4992*22dc650dSSadaf Ebrahimi    abcab\=ps
4993*22dc650dSSadaf Ebrahimi    abc\=ps
4994*22dc650dSSadaf Ebrahimi    ab\=ps
4995*22dc650dSSadaf Ebrahimi    abcx
4996*22dc650dSSadaf Ebrahimi
4997*22dc650dSSadaf Ebrahimi/\z/
4998*22dc650dSSadaf Ebrahimi    abc\=ph
4999*22dc650dSSadaf Ebrahimi    abc\=ps
5000*22dc650dSSadaf Ebrahimi
5001*22dc650dSSadaf Ebrahimi/\Z/
5002*22dc650dSSadaf Ebrahimi    abc\=ph
5003*22dc650dSSadaf Ebrahimi    abc\=ps
5004*22dc650dSSadaf Ebrahimi    abc\n\=ph
5005*22dc650dSSadaf Ebrahimi    abc\n\=ps
5006*22dc650dSSadaf Ebrahimi
5007*22dc650dSSadaf Ebrahimi/c*+(?<=[bc])/
5008*22dc650dSSadaf Ebrahimi    abc\=ph
5009*22dc650dSSadaf Ebrahimi    ab\=ph
5010*22dc650dSSadaf Ebrahimi    abc\=ps
5011*22dc650dSSadaf Ebrahimi    ab\=ps
5012*22dc650dSSadaf Ebrahimi
5013*22dc650dSSadaf Ebrahimi/c++(?<=[bc])/
5014*22dc650dSSadaf Ebrahimi    abc\=ph
5015*22dc650dSSadaf Ebrahimi    ab\=ph
5016*22dc650dSSadaf Ebrahimi
5017*22dc650dSSadaf Ebrahimi/(?<=(?=.(?<=x)))/
5018*22dc650dSSadaf Ebrahimi    abx
5019*22dc650dSSadaf Ebrahimi    ab\=ph
5020*22dc650dSSadaf Ebrahimi    bxyz
5021*22dc650dSSadaf Ebrahimi    xyz
5022*22dc650dSSadaf Ebrahimi
5023*22dc650dSSadaf Ebrahimi/(?![ab]).*/
5024*22dc650dSSadaf Ebrahimi    ab\=ph
5025*22dc650dSSadaf Ebrahimi
5026*22dc650dSSadaf Ebrahimi/c*+/
5027*22dc650dSSadaf Ebrahimi    ab\=ph,offset=2
5028*22dc650dSSadaf Ebrahimi
5029*22dc650dSSadaf Ebrahimi/
5030*22dc650dSSadaf Ebrahimi/anchored, firstline
5031*22dc650dSSadaf Ebrahimi    \x0a
5032*22dc650dSSadaf Ebrahimi
5033*22dc650dSSadaf Ebrahimi/
5034*22dc650dSSadaf Ebrahimi/anchored,firstline,no_start_optimize
5035*22dc650dSSadaf Ebrahimi    \x0a
5036*22dc650dSSadaf Ebrahimi
5037*22dc650dSSadaf Ebrahimi/
5038*22dc650dSSadaf Ebrahimi/firstline
5039*22dc650dSSadaf Ebrahimi    \x0a
5040*22dc650dSSadaf Ebrahimi    abc\x0adef
5041*22dc650dSSadaf Ebrahimi
5042*22dc650dSSadaf Ebrahimi/|a(?0)/endanchored
5043*22dc650dSSadaf Ebrahimi    aaaa
5044*22dc650dSSadaf Ebrahimi
5045*22dc650dSSadaf Ebrahimi# End of testinput6
5046