~clint-fewbar/ubuntu/precise/erlang/merge-15b

« back to all changes in this revision

Viewing changes to lib/stdlib/test/re_SUITE_data/testoutput1

  • Committer: Elliot Murphy
  • Date: 2009-12-22 02:56:21 UTC
  • mfrom: (3.3.5 sid)
  • Revision ID: elliot@elliotmurphy.com-20091222025621-qv3rja8gbpiabkbe
Tags: 1:13.b.3-dfsg-2ubuntu1
* Merge with Debian testing; remaining Ubuntu changes:
  - Drop libwxgtk2.8-dev build dependency. Wx isn't in main, and not
    supposed to. (LP #438365)
  - Drop erlang-wx binary.
  - Drop erlang-wx dependency from -megaco, -common-test, and -reltool, they
    do not really need wx. Also drop it from -debugger; the GUI needs wx,
    but it apparently has CLI bits as well, and is also needed by -megaco,
    so let's keep the package for now.
* Fixed dialyzer(1) manpage which was placed into section 3 and conflicted
  with dialyzer(3erl).
* New upstream release (it adds a new binary package erlang-erl-docgen).
* Refreshed patches, removed most of emacs.patch which is applied upstream.
* Linked run_test binary from erlang-common-test package to /usr/bin.
* Fixed VCS headers in debian/control.
* Moved from prebuilt manpages to generated from sources. This adds
  erlang-manpages binary package and xsltproc build dependency.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/the quick brown fox/
 
2
    the quick brown fox
 
3
 0: the quick brown fox
 
4
    The quick brown FOX
 
5
No match
 
6
    What do you know about the quick brown fox?
 
7
 0: the quick brown fox
 
8
    What do you know about THE QUICK BROWN FOX?
 
9
No match
 
10
 
 
11
/The quick brown fox/i
 
12
    the quick brown fox
 
13
 0: the quick brown fox
 
14
    The quick brown FOX
 
15
 0: The quick brown FOX
 
16
    What do you know about the quick brown fox?
 
17
 0: the quick brown fox
 
18
    What do you know about THE QUICK BROWN FOX?
 
19
 0: THE QUICK BROWN FOX
 
20
 
 
21
/abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
 
22
    abcd\t\n\r\f\a\e9;\$\\?caxyz
 
23
 0: abcd\x09\x0a\x0d\x0c\x07\x1b9;$\?caxyz
 
24
 
 
25
/a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
 
26
    abxyzpqrrrabbxyyyypqAzz
 
27
 0: abxyzpqrrrabbxyyyypqAzz
 
28
    abxyzpqrrrabbxyyyypqAzz
 
29
 0: abxyzpqrrrabbxyyyypqAzz
 
30
    aabxyzpqrrrabbxyyyypqAzz
 
31
 0: aabxyzpqrrrabbxyyyypqAzz
 
32
    aaabxyzpqrrrabbxyyyypqAzz
 
33
 0: aaabxyzpqrrrabbxyyyypqAzz
 
34
    aaaabxyzpqrrrabbxyyyypqAzz
 
35
 0: aaaabxyzpqrrrabbxyyyypqAzz
 
36
    abcxyzpqrrrabbxyyyypqAzz
 
37
 0: abcxyzpqrrrabbxyyyypqAzz
 
38
    aabcxyzpqrrrabbxyyyypqAzz
 
39
 0: aabcxyzpqrrrabbxyyyypqAzz
 
40
    aaabcxyzpqrrrabbxyyyypAzz
 
41
 0: aaabcxyzpqrrrabbxyyyypAzz
 
42
    aaabcxyzpqrrrabbxyyyypqAzz
 
43
 0: aaabcxyzpqrrrabbxyyyypqAzz
 
44
    aaabcxyzpqrrrabbxyyyypqqAzz
 
45
 0: aaabcxyzpqrrrabbxyyyypqqAzz
 
46
    aaabcxyzpqrrrabbxyyyypqqqAzz
 
47
 0: aaabcxyzpqrrrabbxyyyypqqqAzz
 
48
    aaabcxyzpqrrrabbxyyyypqqqqAzz
 
49
 0: aaabcxyzpqrrrabbxyyyypqqqqAzz
 
50
    aaabcxyzpqrrrabbxyyyypqqqqqAzz
 
51
 0: aaabcxyzpqrrrabbxyyyypqqqqqAzz
 
52
    aaabcxyzpqrrrabbxyyyypqqqqqqAzz
 
53
 0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz
 
54
    aaaabcxyzpqrrrabbxyyyypqAzz
 
55
 0: aaaabcxyzpqrrrabbxyyyypqAzz
 
56
    abxyzzpqrrrabbxyyyypqAzz
 
57
 0: abxyzzpqrrrabbxyyyypqAzz
 
58
    aabxyzzzpqrrrabbxyyyypqAzz
 
59
 0: aabxyzzzpqrrrabbxyyyypqAzz
 
60
    aaabxyzzzzpqrrrabbxyyyypqAzz
 
61
 0: aaabxyzzzzpqrrrabbxyyyypqAzz
 
62
    aaaabxyzzzzpqrrrabbxyyyypqAzz
 
63
 0: aaaabxyzzzzpqrrrabbxyyyypqAzz
 
64
    abcxyzzpqrrrabbxyyyypqAzz
 
65
 0: abcxyzzpqrrrabbxyyyypqAzz
 
66
    aabcxyzzzpqrrrabbxyyyypqAzz
 
67
 0: aabcxyzzzpqrrrabbxyyyypqAzz
 
68
    aaabcxyzzzzpqrrrabbxyyyypqAzz
 
69
 0: aaabcxyzzzzpqrrrabbxyyyypqAzz
 
70
    aaaabcxyzzzzpqrrrabbxyyyypqAzz
 
71
 0: aaaabcxyzzzzpqrrrabbxyyyypqAzz
 
72
    aaaabcxyzzzzpqrrrabbbxyyyypqAzz
 
73
 0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz
 
74
    aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
 
75
 0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
 
76
    aaabcxyzpqrrrabbxyyyypABzz
 
77
 0: aaabcxyzpqrrrabbxyyyypABzz
 
78
    aaabcxyzpqrrrabbxyyyypABBzz
 
79
 0: aaabcxyzpqrrrabbxyyyypABBzz
 
80
    >>>aaabxyzpqrrrabbxyyyypqAzz
 
81
 0: aaabxyzpqrrrabbxyyyypqAzz
 
82
    >aaaabxyzpqrrrabbxyyyypqAzz
 
83
 0: aaaabxyzpqrrrabbxyyyypqAzz
 
84
    >>>>abcxyzpqrrrabbxyyyypqAzz
 
85
 0: abcxyzpqrrrabbxyyyypqAzz
 
86
    *** Failers
 
87
No match
 
88
    abxyzpqrrabbxyyyypqAzz
 
89
No match
 
90
    abxyzpqrrrrabbxyyyypqAzz
 
91
No match
 
92
    abxyzpqrrrabxyyyypqAzz
 
93
No match
 
94
    aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
 
95
No match
 
96
    aaaabcxyzzzzpqrrrabbbxyyypqAzz
 
97
No match
 
98
    aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
 
99
No match
 
100
 
 
101
/^(abc){1,2}zz/
 
102
    abczz
 
103
 0: abczz
 
104
 1: abc
 
105
    abcabczz
 
106
 0: abcabczz
 
107
 1: abc
 
108
    *** Failers
 
109
No match
 
110
    zz
 
111
No match
 
112
    abcabcabczz
 
113
No match
 
114
    >>abczz
 
115
No match
 
116
 
 
117
/^(b+?|a){1,2}?c/
 
118
    bc
 
119
 0: bc
 
120
 1: b
 
121
    bbc
 
122
 0: bbc
 
123
 1: b
 
124
    bbbc
 
125
 0: bbbc
 
126
 1: bb
 
127
    bac
 
128
 0: bac
 
129
 1: a
 
130
    bbac
 
131
 0: bbac
 
132
 1: a
 
133
    aac
 
134
 0: aac
 
135
 1: a
 
136
    abbbbbbbbbbbc
 
137
 0: abbbbbbbbbbbc
 
138
 1: bbbbbbbbbbb
 
139
    bbbbbbbbbbbac
 
140
 0: bbbbbbbbbbbac
 
141
 1: a
 
142
    *** Failers
 
143
No match
 
144
    aaac
 
145
No match
 
146
    abbbbbbbbbbbac
 
147
No match
 
148
 
 
149
/^(b+|a){1,2}c/
 
150
    bc
 
151
 0: bc
 
152
 1: b
 
153
    bbc
 
154
 0: bbc
 
155
 1: bb
 
156
    bbbc
 
157
 0: bbbc
 
158
 1: bbb
 
159
    bac
 
160
 0: bac
 
161
 1: a
 
162
    bbac
 
163
 0: bbac
 
164
 1: a
 
165
    aac
 
166
 0: aac
 
167
 1: a
 
168
    abbbbbbbbbbbc
 
169
 0: abbbbbbbbbbbc
 
170
 1: bbbbbbbbbbb
 
171
    bbbbbbbbbbbac
 
172
 0: bbbbbbbbbbbac
 
173
 1: a
 
174
    *** Failers
 
175
No match
 
176
    aaac
 
177
No match
 
178
    abbbbbbbbbbbac
 
179
No match
 
180
 
 
181
/^(b+|a){1,2}?bc/
 
182
    bbc
 
183
 0: bbc
 
184
 1: b
 
185
 
 
186
/^(b*|ba){1,2}?bc/
 
187
    babc
 
188
 0: babc
 
189
 1: ba
 
190
    bbabc
 
191
 0: bbabc
 
192
 1: ba
 
193
    bababc
 
194
 0: bababc
 
195
 1: ba
 
196
    *** Failers
 
197
No match
 
198
    bababbc
 
199
No match
 
200
    babababc
 
201
No match
 
202
 
 
203
/^(ba|b*){1,2}?bc/
 
204
    babc
 
205
 0: babc
 
206
 1: ba
 
207
    bbabc
 
208
 0: bbabc
 
209
 1: ba
 
210
    bababc
 
211
 0: bababc
 
212
 1: ba
 
213
    *** Failers
 
214
No match
 
215
    bababbc
 
216
No match
 
217
    babababc
 
218
No match
 
219
 
 
220
/^\ca\cA\c[\c{\c:/
 
221
    \x01\x01\e;z
 
222
 0: \x01\x01\x1b;z
 
223
 
 
224
/^[ab\]cde]/
 
225
    athing
 
226
 0: a
 
227
    bthing
 
228
 0: b
 
229
    ]thing
 
230
 0: ]
 
231
    cthing
 
232
 0: c
 
233
    dthing
 
234
 0: d
 
235
    ething
 
236
 0: e
 
237
    *** Failers
 
238
No match
 
239
    fthing
 
240
No match
 
241
    [thing
 
242
No match
 
243
    \\thing
 
244
No match
 
245
 
 
246
/^[]cde]/
 
247
    ]thing
 
248
 0: ]
 
249
    cthing
 
250
 0: c
 
251
    dthing
 
252
 0: d
 
253
    ething
 
254
 0: e
 
255
    *** Failers
 
256
No match
 
257
    athing
 
258
No match
 
259
    fthing
 
260
No match
 
261
 
 
262
/^[^ab\]cde]/
 
263
    fthing
 
264
 0: f
 
265
    [thing
 
266
 0: [
 
267
    \\thing
 
268
 0: \
 
269
    *** Failers
 
270
 0: *
 
271
    athing
 
272
No match
 
273
    bthing
 
274
No match
 
275
    ]thing
 
276
No match
 
277
    cthing
 
278
No match
 
279
    dthing
 
280
No match
 
281
    ething
 
282
No match
 
283
 
 
284
/^[^]cde]/
 
285
    athing
 
286
 0: a
 
287
    fthing
 
288
 0: f
 
289
    *** Failers
 
290
 0: *
 
291
    ]thing
 
292
No match
 
293
    cthing
 
294
No match
 
295
    dthing
 
296
No match
 
297
    ething
 
298
No match
 
299
 
 
300
/^\�/
 
301
    �
 
302
 0: \x81
 
303
 
 
304
/^�/
 
305
    �
 
306
 0: \xff
 
307
 
 
308
/^[0-9]+$/
 
309
    0
 
310
 0: 0
 
311
    1
 
312
 0: 1
 
313
    2
 
314
 0: 2
 
315
    3
 
316
 0: 3
 
317
    4
 
318
 0: 4
 
319
    5
 
320
 0: 5
 
321
    6
 
322
 0: 6
 
323
    7
 
324
 0: 7
 
325
    8
 
326
 0: 8
 
327
    9
 
328
 0: 9
 
329
    10
 
330
 0: 10
 
331
    100
 
332
 0: 100
 
333
    *** Failers
 
334
No match
 
335
    abc
 
336
No match
 
337
 
 
338
/^.*nter/
 
339
    enter
 
340
 0: enter
 
341
    inter
 
342
 0: inter
 
343
    uponter
 
344
 0: uponter
 
345
 
 
346
/^xxx[0-9]+$/
 
347
    xxx0
 
348
 0: xxx0
 
349
    xxx1234
 
350
 0: xxx1234
 
351
    *** Failers
 
352
No match
 
353
    xxx
 
354
No match
 
355
 
 
356
/^.+[0-9][0-9][0-9]$/
 
357
    x123
 
358
 0: x123
 
359
    xx123
 
360
 0: xx123
 
361
    123456
 
362
 0: 123456
 
363
    *** Failers
 
364
No match
 
365
    123
 
366
No match
 
367
    x1234
 
368
 0: x1234
 
369
 
 
370
/^.+?[0-9][0-9][0-9]$/
 
371
    x123
 
372
 0: x123
 
373
    xx123
 
374
 0: xx123
 
375
    123456
 
376
 0: 123456
 
377
    *** Failers
 
378
No match
 
379
    123
 
380
No match
 
381
    x1234
 
382
 0: x1234
 
383
 
 
384
/^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
 
385
    abc!pqr=apquxz.ixr.zzz.ac.uk
 
386
 0: abc!pqr=apquxz.ixr.zzz.ac.uk
 
387
 1: abc
 
388
 2: pqr
 
389
    *** Failers
 
390
No match
 
391
    !pqr=apquxz.ixr.zzz.ac.uk
 
392
No match
 
393
    abc!=apquxz.ixr.zzz.ac.uk
 
394
No match
 
395
    abc!pqr=apquxz:ixr.zzz.ac.uk
 
396
No match
 
397
    abc!pqr=apquxz.ixr.zzz.ac.ukk
 
398
No match
 
399
 
 
400
/:/
 
401
    Well, we need a colon: somewhere
 
402
 0: :
 
403
    *** Fail if we don't
 
404
No match
 
405
 
 
406
/([\da-f:]+)$/i
 
407
    0abc
 
408
 0: 0abc
 
409
 1: 0abc
 
410
    abc
 
411
 0: abc
 
412
 1: abc
 
413
    fed
 
414
 0: fed
 
415
 1: fed
 
416
    E
 
417
 0: E
 
418
 1: E
 
419
    ::
 
420
 0: ::
 
421
 1: ::
 
422
    5f03:12C0::932e
 
423
 0: 5f03:12C0::932e
 
424
 1: 5f03:12C0::932e
 
425
    fed def
 
426
 0: def
 
427
 1: def
 
428
    Any old stuff
 
429
 0: ff
 
430
 1: ff
 
431
    *** Failers
 
432
No match
 
433
    0zzz
 
434
No match
 
435
    gzzz
 
436
No match
 
437
    fed\x20
 
438
No match
 
439
    Any old rubbish
 
440
No match
 
441
 
 
442
/^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
 
443
    .1.2.3
 
444
 0: .1.2.3
 
445
 1: 1
 
446
 2: 2
 
447
 3: 3
 
448
    A.12.123.0
 
449
 0: A.12.123.0
 
450
 1: 12
 
451
 2: 123
 
452
 3: 0
 
453
    *** Failers
 
454
No match
 
455
    .1.2.3333
 
456
No match
 
457
    1.2.3
 
458
No match
 
459
    1234.2.3
 
460
No match
 
461
 
 
462
/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
 
463
    1 IN SOA non-sp1 non-sp2(
 
464
 0: 1 IN SOA non-sp1 non-sp2(
 
465
 1: 1
 
466
 2: non-sp1
 
467
 3: non-sp2
 
468
    1    IN    SOA    non-sp1    non-sp2   (
 
469
 0: 1    IN    SOA    non-sp1    non-sp2   (
 
470
 1: 1
 
471
 2: non-sp1
 
472
 3: non-sp2
 
473
    *** Failers
 
474
No match
 
475
    1IN SOA non-sp1 non-sp2(
 
476
No match
 
477
 
 
478
/^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
 
479
    a.
 
480
 0: a.
 
481
    Z.
 
482
 0: Z.
 
483
    2.
 
484
 0: 2.
 
485
    ab-c.pq-r.
 
486
 0: ab-c.pq-r.
 
487
 1: .pq-r
 
488
    sxk.zzz.ac.uk.
 
489
 0: sxk.zzz.ac.uk.
 
490
 1: .uk
 
491
    x-.y-.
 
492
 0: x-.y-.
 
493
 1: .y-
 
494
    *** Failers
 
495
No match
 
496
    -abc.peq.
 
497
No match
 
498
 
 
499
/^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
 
500
    *.a
 
501
 0: *.a
 
502
    *.b0-a
 
503
 0: *.b0-a
 
504
 1: 0-a
 
505
    *.c3-b.c
 
506
 0: *.c3-b.c
 
507
 1: 3-b
 
508
 2: .c
 
509
    *.c-a.b-c
 
510
 0: *.c-a.b-c
 
511
 1: -a
 
512
 2: .b-c
 
513
 3: -c
 
514
    *** Failers
 
515
No match
 
516
    *.0
 
517
No match
 
518
    *.a-
 
519
No match
 
520
    *.a-b.c-
 
521
No match
 
522
    *.c-a.0-c
 
523
No match
 
524
 
 
525
/^(?=ab(de))(abd)(e)/
 
526
    abde
 
527
 0: abde
 
528
 1: de
 
529
 2: abd
 
530
 3: e
 
531
 
 
532
/^(?!(ab)de|x)(abd)(f)/
 
533
    abdf
 
534
 0: abdf
 
535
 1: <unset>
 
536
 2: abd
 
537
 3: f
 
538
 
 
539
/^(?=(ab(cd)))(ab)/
 
540
    abcd
 
541
 0: ab
 
542
 1: abcd
 
543
 2: cd
 
544
 3: ab
 
545
 
 
546
/^[\da-f](\.[\da-f])*$/i
 
547
    a.b.c.d
 
548
 0: a.b.c.d
 
549
 1: .d
 
550
    A.B.C.D
 
551
 0: A.B.C.D
 
552
 1: .D
 
553
    a.b.c.1.2.3.C
 
554
 0: a.b.c.1.2.3.C
 
555
 1: .C
 
556
 
 
557
/^\".*\"\s*(;.*)?$/
 
558
    \"1234\"
 
559
 0: "1234"
 
560
    \"abcd\" ;
 
561
 0: "abcd" ;
 
562
 1: ;
 
563
    \"\" ; rhubarb
 
564
 0: "" ; rhubarb
 
565
 1: ; rhubarb
 
566
    *** Failers
 
567
No match
 
568
    \"1234\" : things
 
569
No match
 
570
 
 
571
/^$/
 
572
    \
 
573
 0: 
 
574
    *** Failers
 
575
No match
 
576
 
 
577
/   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/x
 
578
    ab c
 
579
 0: ab c
 
580
    *** Failers
 
581
No match
 
582
    abc
 
583
No match
 
584
    ab cde
 
585
No match
 
586
 
 
587
/(?x)   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/
 
588
    ab c
 
589
 0: ab c
 
590
    *** Failers
 
591
No match
 
592
    abc
 
593
No match
 
594
    ab cde
 
595
No match
 
596
 
 
597
/^   a\ b[c ]d       $/x
 
598
    a bcd
 
599
 0: a bcd
 
600
    a b d
 
601
 0: a b d
 
602
    *** Failers
 
603
No match
 
604
    abcd
 
605
No match
 
606
    ab d
 
607
No match
 
608
 
 
609
/^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
 
610
    abcdefhijklm
 
611
 0: abcdefhijklm
 
612
 1: abc
 
613
 2: bc
 
614
 3: c
 
615
 4: def
 
616
 5: ef
 
617
 6: f
 
618
 7: hij
 
619
 8: ij
 
620
 9: j
 
621
10: klm
 
622
11: lm
 
623
12: m
 
624
 
 
625
/^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
 
626
    abcdefhijklm
 
627
 0: abcdefhijklm
 
628
 1: bc
 
629
 2: c
 
630
 3: ef
 
631
 4: f
 
632
 5: ij
 
633
 6: j
 
634
 7: lm
 
635
 8: m
 
636
 
 
637
/^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
 
638
    a+ Z0+\x08\n\x1d\x12
 
639
 0: a+ Z0+\x08\x0a\x1d\x12
 
640
 
 
641
/^[.^$|()*+?{,}]+/
 
642
    .^\$(*+)|{?,?}
 
643
 0: .^$(*+)|{?,?}
 
644
 
 
645
/^a*\w/
 
646
    z
 
647
 0: z
 
648
    az
 
649
 0: az
 
650
    aaaz
 
651
 0: aaaz
 
652
    a
 
653
 0: a
 
654
    aa
 
655
 0: aa
 
656
    aaaa
 
657
 0: aaaa
 
658
    a+
 
659
 0: a
 
660
    aa+
 
661
 0: aa
 
662
 
 
663
/^a*?\w/
 
664
    z
 
665
 0: z
 
666
    az
 
667
 0: a
 
668
    aaaz
 
669
 0: a
 
670
    a
 
671
 0: a
 
672
    aa
 
673
 0: a
 
674
    aaaa
 
675
 0: a
 
676
    a+
 
677
 0: a
 
678
    aa+
 
679
 0: a
 
680
 
 
681
/^a+\w/
 
682
    az
 
683
 0: az
 
684
    aaaz
 
685
 0: aaaz
 
686
    aa
 
687
 0: aa
 
688
    aaaa
 
689
 0: aaaa
 
690
    aa+
 
691
 0: aa
 
692
 
 
693
/^a+?\w/
 
694
    az
 
695
 0: az
 
696
    aaaz
 
697
 0: aa
 
698
    aa
 
699
 0: aa
 
700
    aaaa
 
701
 0: aa
 
702
    aa+
 
703
 0: aa
 
704
 
 
705
/^\d{8}\w{2,}/
 
706
    1234567890
 
707
 0: 1234567890
 
708
    12345678ab
 
709
 0: 12345678ab
 
710
    12345678__
 
711
 0: 12345678__
 
712
    *** Failers
 
713
No match
 
714
    1234567
 
715
No match
 
716
 
 
717
/^[aeiou\d]{4,5}$/
 
718
    uoie
 
719
 0: uoie
 
720
    1234
 
721
 0: 1234
 
722
    12345
 
723
 0: 12345
 
724
    aaaaa
 
725
 0: aaaaa
 
726
    *** Failers
 
727
No match
 
728
    123456
 
729
No match
 
730
 
 
731
/^[aeiou\d]{4,5}?/
 
732
    uoie
 
733
 0: uoie
 
734
    1234
 
735
 0: 1234
 
736
    12345
 
737
 0: 1234
 
738
    aaaaa
 
739
 0: aaaa
 
740
    123456
 
741
 0: 1234
 
742
 
 
743
/\A(abc|def)=(\1){2,3}\Z/
 
744
    abc=abcabc
 
745
 0: abc=abcabc
 
746
 1: abc
 
747
 2: abc
 
748
    def=defdefdef
 
749
 0: def=defdefdef
 
750
 1: def
 
751
 2: def
 
752
    *** Failers
 
753
No match
 
754
    abc=defdef
 
755
No match
 
756
 
 
757
/^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/
 
758
    abcdefghijkcda2
 
759
 0: abcdefghijkcda2
 
760
 1: a
 
761
 2: b
 
762
 3: c
 
763
 4: d
 
764
 5: e
 
765
 6: f
 
766
 7: g
 
767
 8: h
 
768
 9: i
 
769
10: j
 
770
11: k
 
771
12: cd
 
772
    abcdefghijkkkkcda2
 
773
 0: abcdefghijkkkkcda2
 
774
 1: a
 
775
 2: b
 
776
 3: c
 
777
 4: d
 
778
 5: e
 
779
 6: f
 
780
 7: g
 
781
 8: h
 
782
 9: i
 
783
10: j
 
784
11: k
 
785
12: cd
 
786
 
 
787
/(cat(a(ract|tonic)|erpillar)) \1()2(3)/
 
788
    cataract cataract23
 
789
 0: cataract cataract23
 
790
 1: cataract
 
791
 2: aract
 
792
 3: ract
 
793
 4: 
 
794
 5: 3
 
795
    catatonic catatonic23
 
796
 0: catatonic catatonic23
 
797
 1: catatonic
 
798
 2: atonic
 
799
 3: tonic
 
800
 4: 
 
801
 5: 3
 
802
    caterpillar caterpillar23
 
803
 0: caterpillar caterpillar23
 
804
 1: caterpillar
 
805
 2: erpillar
 
806
 3: <unset>
 
807
 4: 
 
808
 5: 3
 
809
 
 
810
 
 
811
/^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]/
 
812
    From abcd  Mon Sep 01 12:33:02 1997
 
813
 0: From abcd  Mon Sep 01 12:33
 
814
 1: abcd
 
815
 
 
816
/^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
 
817
    From abcd  Mon Sep 01 12:33:02 1997
 
818
 0: From abcd  Mon Sep 01 12:33
 
819
 1: Sep 
 
820
    From abcd  Mon Sep  1 12:33:02 1997
 
821
 0: From abcd  Mon Sep  1 12:33
 
822
 1: Sep  
 
823
    *** Failers
 
824
No match
 
825
    From abcd  Sep 01 12:33:02 1997
 
826
No match
 
827
 
 
828
/^12.34/s
 
829
    12\n34
 
830
 0: 12\x0a34
 
831
    12\r34
 
832
 0: 12\x0d34
 
833
 
 
834
/\w+(?=\t)/
 
835
    the quick brown\t fox
 
836
 0: brown
 
837
 
 
838
/foo(?!bar)(.*)/
 
839
    foobar is foolish see?
 
840
 0: foolish see?
 
841
 1: lish see?
 
842
 
 
843
/(?:(?!foo)...|^.{0,2})bar(.*)/
 
844
    foobar crowbar etc
 
845
 0: rowbar etc
 
846
 1:  etc
 
847
    barrel
 
848
 0: barrel
 
849
 1: rel
 
850
    2barrel
 
851
 0: 2barrel
 
852
 1: rel
 
853
    A barrel
 
854
 0: A barrel
 
855
 1: rel
 
856
 
 
857
/^(\D*)(?=\d)(?!123)/
 
858
    abc456
 
859
 0: abc
 
860
 1: abc
 
861
    *** Failers
 
862
No match
 
863
    abc123
 
864
No match
 
865
 
 
866
/^1234(?# test newlines
 
867
  inside)/
 
868
    1234
 
869
 0: 1234
 
870
 
 
871
/^1234 #comment in extended re
 
872
  /x
 
873
    1234
 
874
 0: 1234
 
875
 
 
876
/#rhubarb
 
877
  abcd/x
 
878
    abcd
 
879
 0: abcd
 
880
 
 
881
/^abcd#rhubarb/x
 
882
    abcd
 
883
 0: abcd
 
884
 
 
885
/^(a)\1{2,3}(.)/
 
886
    aaab
 
887
 0: aaab
 
888
 1: a
 
889
 2: b
 
890
    aaaab
 
891
 0: aaaab
 
892
 1: a
 
893
 2: b
 
894
    aaaaab
 
895
 0: aaaaa
 
896
 1: a
 
897
 2: a
 
898
    aaaaaab
 
899
 0: aaaaa
 
900
 1: a
 
901
 2: a
 
902
 
 
903
/(?!^)abc/
 
904
    the abc
 
905
 0: abc
 
906
    *** Failers
 
907
No match
 
908
    abc
 
909
No match
 
910
 
 
911
/(?=^)abc/
 
912
    abc
 
913
 0: abc
 
914
    *** Failers
 
915
No match
 
916
    the abc
 
917
No match
 
918
 
 
919
/^[ab]{1,3}(ab*|b)/
 
920
    aabbbbb
 
921
 0: aabb
 
922
 1: b
 
923
 
 
924
/^[ab]{1,3}?(ab*|b)/
 
925
    aabbbbb
 
926
 0: aabbbbb
 
927
 1: abbbbb
 
928
 
 
929
/^[ab]{1,3}?(ab*?|b)/
 
930
    aabbbbb
 
931
 0: aa
 
932
 1: a
 
933
 
 
934
/^[ab]{1,3}(ab*?|b)/
 
935
    aabbbbb
 
936
 0: aabb
 
937
 1: b
 
938
 
 
939
/  (?: [\040\t] |  \(
 
940
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
941
\)  )*                          # optional leading comment
 
942
(?:    (?:
 
943
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
944
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
945
|
 
946
" (?:                      # opening quote...
 
947
[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
 
948
|                     #    or
 
949
\\ [^\x80-\xff]           #   Escaped something (something != CR)
 
950
)* "  # closing quote
 
951
)                    # initial word
 
952
(?:  (?: [\040\t] |  \(
 
953
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
954
\)  )*  \.  (?: [\040\t] |  \(
 
955
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
956
\)  )*   (?:
 
957
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
958
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
959
|
 
960
" (?:                      # opening quote...
 
961
[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
 
962
|                     #    or
 
963
\\ [^\x80-\xff]           #   Escaped something (something != CR)
 
964
)* "  # closing quote
 
965
)  )* # further okay, if led by a period
 
966
(?: [\040\t] |  \(
 
967
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
968
\)  )*  @  (?: [\040\t] |  \(
 
969
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
970
\)  )*    (?:
 
971
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
972
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
973
|   \[                         # [
 
974
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
 
975
\]                        #           ]
 
976
)                           # initial subdomain
 
977
(?:                                  #
 
978
(?: [\040\t] |  \(
 
979
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
980
\)  )*  \.                        # if led by a period...
 
981
(?: [\040\t] |  \(
 
982
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
983
\)  )*   (?:
 
984
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
985
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
986
|   \[                         # [
 
987
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
 
988
\]                        #           ]
 
989
)                     #   ...further okay
 
990
)*
 
991
# address
 
992
|                     #  or
 
993
(?:
 
994
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
995
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
996
|
 
997
" (?:                      # opening quote...
 
998
[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
 
999
|                     #    or
 
1000
\\ [^\x80-\xff]           #   Escaped something (something != CR)
 
1001
)* "  # closing quote
 
1002
)             # one word, optionally followed by....
 
1003
(?:
 
1004
[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
 
1005
\(
 
1006
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1007
\)       |  # comments, or...
 
1008
 
 
1009
" (?:                      # opening quote...
 
1010
[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
 
1011
|                     #    or
 
1012
\\ [^\x80-\xff]           #   Escaped something (something != CR)
 
1013
)* "  # closing quote
 
1014
# quoted strings
 
1015
)*
 
1016
<  (?: [\040\t] |  \(
 
1017
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1018
\)  )*                     # leading <
 
1019
(?:  @  (?: [\040\t] |  \(
 
1020
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1021
\)  )*    (?:
 
1022
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1023
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1024
|   \[                         # [
 
1025
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
 
1026
\]                        #           ]
 
1027
)                           # initial subdomain
 
1028
(?:                                  #
 
1029
(?: [\040\t] |  \(
 
1030
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1031
\)  )*  \.                        # if led by a period...
 
1032
(?: [\040\t] |  \(
 
1033
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1034
\)  )*   (?:
 
1035
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1036
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1037
|   \[                         # [
 
1038
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
 
1039
\]                        #           ]
 
1040
)                     #   ...further okay
 
1041
)*
 
1042
 
 
1043
(?:  (?: [\040\t] |  \(
 
1044
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1045
\)  )*  ,  (?: [\040\t] |  \(
 
1046
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1047
\)  )*  @  (?: [\040\t] |  \(
 
1048
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1049
\)  )*    (?:
 
1050
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1051
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1052
|   \[                         # [
 
1053
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
 
1054
\]                        #           ]
 
1055
)                           # initial subdomain
 
1056
(?:                                  #
 
1057
(?: [\040\t] |  \(
 
1058
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1059
\)  )*  \.                        # if led by a period...
 
1060
(?: [\040\t] |  \(
 
1061
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1062
\)  )*   (?:
 
1063
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1064
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1065
|   \[                         # [
 
1066
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
 
1067
\]                        #           ]
 
1068
)                     #   ...further okay
 
1069
)*
 
1070
)* # further okay, if led by comma
 
1071
:                                # closing colon
 
1072
(?: [\040\t] |  \(
 
1073
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1074
\)  )*  )? #       optional route
 
1075
(?:
 
1076
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1077
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1078
|
 
1079
" (?:                      # opening quote...
 
1080
[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
 
1081
|                     #    or
 
1082
\\ [^\x80-\xff]           #   Escaped something (something != CR)
 
1083
)* "  # closing quote
 
1084
)                    # initial word
 
1085
(?:  (?: [\040\t] |  \(
 
1086
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1087
\)  )*  \.  (?: [\040\t] |  \(
 
1088
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1089
\)  )*   (?:
 
1090
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1091
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1092
|
 
1093
" (?:                      # opening quote...
 
1094
[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
 
1095
|                     #    or
 
1096
\\ [^\x80-\xff]           #   Escaped something (something != CR)
 
1097
)* "  # closing quote
 
1098
)  )* # further okay, if led by a period
 
1099
(?: [\040\t] |  \(
 
1100
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1101
\)  )*  @  (?: [\040\t] |  \(
 
1102
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1103
\)  )*    (?:
 
1104
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1105
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1106
|   \[                         # [
 
1107
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
 
1108
\]                        #           ]
 
1109
)                           # initial subdomain
 
1110
(?:                                  #
 
1111
(?: [\040\t] |  \(
 
1112
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1113
\)  )*  \.                        # if led by a period...
 
1114
(?: [\040\t] |  \(
 
1115
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1116
\)  )*   (?:
 
1117
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1118
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1119
|   \[                         # [
 
1120
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
 
1121
\]                        #           ]
 
1122
)                     #   ...further okay
 
1123
)*
 
1124
#       address spec
 
1125
(?: [\040\t] |  \(
 
1126
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1127
\)  )*  > #                  trailing >
 
1128
# name and address
 
1129
)  (?: [\040\t] |  \(
 
1130
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 
1131
\)  )*                       # optional trailing comment
 
1132
/x
 
1133
    Alan Other <user\@dom.ain>
 
1134
 0: Alan Other <user@dom.ain>
 
1135
    <user\@dom.ain>
 
1136
 0: user@dom.ain
 
1137
    user\@dom.ain
 
1138
 0: user@dom.ain
 
1139
    \"A. Other\" <user.1234\@dom.ain> (a comment)
 
1140
 0: "A. Other" <user.1234@dom.ain> (a comment)
 
1141
    A. Other <user.1234\@dom.ain> (a comment)
 
1142
 0:  Other <user.1234@dom.ain> (a comment)
 
1143
    \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
 
1144
 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
 
1145
    A missing angle <user\@some.where
 
1146
 0: user@some.where
 
1147
    *** Failers
 
1148
No match
 
1149
    The quick brown fox
 
1150
No match
 
1151
 
 
1152
/[\040\t]*                    # Nab whitespace.
 
1153
(?:
 
1154
\(                              #  (
 
1155
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1156
(?:                                 #       (
 
1157
(?:  \\ [^\x80-\xff]  |
 
1158
\(                            #  (
 
1159
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1160
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1161
\)                           #                       )
 
1162
)    #         special
 
1163
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1164
)*                                  #            )*
 
1165
\)                             #                )
 
1166
[\040\t]* )*    # If comment found, allow more spaces.
 
1167
# optional leading comment
 
1168
(?:
 
1169
(?:
 
1170
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1171
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1172
# Atom
 
1173
|                       #  or
 
1174
"                                     # "
 
1175
[^\\\x80-\xff\n\015"] *                            #   normal
 
1176
(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
 
1177
"                                     #        "
 
1178
# Quoted string
 
1179
)
 
1180
[\040\t]*                    # Nab whitespace.
 
1181
(?:
 
1182
\(                              #  (
 
1183
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1184
(?:                                 #       (
 
1185
(?:  \\ [^\x80-\xff]  |
 
1186
\(                            #  (
 
1187
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1188
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1189
\)                           #                       )
 
1190
)    #         special
 
1191
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1192
)*                                  #            )*
 
1193
\)                             #                )
 
1194
[\040\t]* )*    # If comment found, allow more spaces.
 
1195
(?:
 
1196
\.
 
1197
[\040\t]*                    # Nab whitespace.
 
1198
(?:
 
1199
\(                              #  (
 
1200
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1201
(?:                                 #       (
 
1202
(?:  \\ [^\x80-\xff]  |
 
1203
\(                            #  (
 
1204
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1205
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1206
\)                           #                       )
 
1207
)    #         special
 
1208
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1209
)*                                  #            )*
 
1210
\)                             #                )
 
1211
[\040\t]* )*    # If comment found, allow more spaces.
 
1212
(?:
 
1213
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1214
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1215
# Atom
 
1216
|                       #  or
 
1217
"                                     # "
 
1218
[^\\\x80-\xff\n\015"] *                            #   normal
 
1219
(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
 
1220
"                                     #        "
 
1221
# Quoted string
 
1222
)
 
1223
[\040\t]*                    # Nab whitespace.
 
1224
(?:
 
1225
\(                              #  (
 
1226
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1227
(?:                                 #       (
 
1228
(?:  \\ [^\x80-\xff]  |
 
1229
\(                            #  (
 
1230
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1231
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1232
\)                           #                       )
 
1233
)    #         special
 
1234
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1235
)*                                  #            )*
 
1236
\)                             #                )
 
1237
[\040\t]* )*    # If comment found, allow more spaces.
 
1238
# additional words
 
1239
)*
 
1240
@
 
1241
[\040\t]*                    # Nab whitespace.
 
1242
(?:
 
1243
\(                              #  (
 
1244
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1245
(?:                                 #       (
 
1246
(?:  \\ [^\x80-\xff]  |
 
1247
\(                            #  (
 
1248
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1249
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1250
\)                           #                       )
 
1251
)    #         special
 
1252
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1253
)*                                  #            )*
 
1254
\)                             #                )
 
1255
[\040\t]* )*    # If comment found, allow more spaces.
 
1256
(?:
 
1257
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1258
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1259
|
 
1260
\[                            # [
 
1261
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
 
1262
\]                           #           ]
 
1263
)
 
1264
[\040\t]*                    # Nab whitespace.
 
1265
(?:
 
1266
\(                              #  (
 
1267
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1268
(?:                                 #       (
 
1269
(?:  \\ [^\x80-\xff]  |
 
1270
\(                            #  (
 
1271
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1272
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1273
\)                           #                       )
 
1274
)    #         special
 
1275
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1276
)*                                  #            )*
 
1277
\)                             #                )
 
1278
[\040\t]* )*    # If comment found, allow more spaces.
 
1279
# optional trailing comments
 
1280
(?:
 
1281
\.
 
1282
[\040\t]*                    # Nab whitespace.
 
1283
(?:
 
1284
\(                              #  (
 
1285
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1286
(?:                                 #       (
 
1287
(?:  \\ [^\x80-\xff]  |
 
1288
\(                            #  (
 
1289
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1290
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1291
\)                           #                       )
 
1292
)    #         special
 
1293
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1294
)*                                  #            )*
 
1295
\)                             #                )
 
1296
[\040\t]* )*    # If comment found, allow more spaces.
 
1297
(?:
 
1298
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1299
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1300
|
 
1301
\[                            # [
 
1302
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
 
1303
\]                           #           ]
 
1304
)
 
1305
[\040\t]*                    # Nab whitespace.
 
1306
(?:
 
1307
\(                              #  (
 
1308
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1309
(?:                                 #       (
 
1310
(?:  \\ [^\x80-\xff]  |
 
1311
\(                            #  (
 
1312
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1313
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1314
\)                           #                       )
 
1315
)    #         special
 
1316
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1317
)*                                  #            )*
 
1318
\)                             #                )
 
1319
[\040\t]* )*    # If comment found, allow more spaces.
 
1320
# optional trailing comments
 
1321
)*
 
1322
# address
 
1323
|                             #  or
 
1324
(?:
 
1325
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1326
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1327
# Atom
 
1328
|                       #  or
 
1329
"                                     # "
 
1330
[^\\\x80-\xff\n\015"] *                            #   normal
 
1331
(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
 
1332
"                                     #        "
 
1333
# Quoted string
 
1334
)
 
1335
# leading word
 
1336
[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *               # "normal" atoms and or spaces
 
1337
(?:
 
1338
(?:
 
1339
\(                              #  (
 
1340
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1341
(?:                                 #       (
 
1342
(?:  \\ [^\x80-\xff]  |
 
1343
\(                            #  (
 
1344
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1345
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1346
\)                           #                       )
 
1347
)    #         special
 
1348
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1349
)*                                  #            )*
 
1350
\)                             #                )
 
1351
|
 
1352
"                                     # "
 
1353
[^\\\x80-\xff\n\015"] *                            #   normal
 
1354
(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
 
1355
"                                     #        "
 
1356
) # "special" comment or quoted string
 
1357
[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *            #  more "normal"
 
1358
)*
 
1359
<
 
1360
[\040\t]*                    # Nab whitespace.
 
1361
(?:
 
1362
\(                              #  (
 
1363
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1364
(?:                                 #       (
 
1365
(?:  \\ [^\x80-\xff]  |
 
1366
\(                            #  (
 
1367
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1368
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1369
\)                           #                       )
 
1370
)    #         special
 
1371
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1372
)*                                  #            )*
 
1373
\)                             #                )
 
1374
[\040\t]* )*    # If comment found, allow more spaces.
 
1375
# <
 
1376
(?:
 
1377
@
 
1378
[\040\t]*                    # Nab whitespace.
 
1379
(?:
 
1380
\(                              #  (
 
1381
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1382
(?:                                 #       (
 
1383
(?:  \\ [^\x80-\xff]  |
 
1384
\(                            #  (
 
1385
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1386
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1387
\)                           #                       )
 
1388
)    #         special
 
1389
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1390
)*                                  #            )*
 
1391
\)                             #                )
 
1392
[\040\t]* )*    # If comment found, allow more spaces.
 
1393
(?:
 
1394
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1395
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1396
|
 
1397
\[                            # [
 
1398
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
 
1399
\]                           #           ]
 
1400
)
 
1401
[\040\t]*                    # Nab whitespace.
 
1402
(?:
 
1403
\(                              #  (
 
1404
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1405
(?:                                 #       (
 
1406
(?:  \\ [^\x80-\xff]  |
 
1407
\(                            #  (
 
1408
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1409
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1410
\)                           #                       )
 
1411
)    #         special
 
1412
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1413
)*                                  #            )*
 
1414
\)                             #                )
 
1415
[\040\t]* )*    # If comment found, allow more spaces.
 
1416
# optional trailing comments
 
1417
(?:
 
1418
\.
 
1419
[\040\t]*                    # Nab whitespace.
 
1420
(?:
 
1421
\(                              #  (
 
1422
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1423
(?:                                 #       (
 
1424
(?:  \\ [^\x80-\xff]  |
 
1425
\(                            #  (
 
1426
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1427
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1428
\)                           #                       )
 
1429
)    #         special
 
1430
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1431
)*                                  #            )*
 
1432
\)                             #                )
 
1433
[\040\t]* )*    # If comment found, allow more spaces.
 
1434
(?:
 
1435
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1436
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1437
|
 
1438
\[                            # [
 
1439
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
 
1440
\]                           #           ]
 
1441
)
 
1442
[\040\t]*                    # Nab whitespace.
 
1443
(?:
 
1444
\(                              #  (
 
1445
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1446
(?:                                 #       (
 
1447
(?:  \\ [^\x80-\xff]  |
 
1448
\(                            #  (
 
1449
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1450
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1451
\)                           #                       )
 
1452
)    #         special
 
1453
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1454
)*                                  #            )*
 
1455
\)                             #                )
 
1456
[\040\t]* )*    # If comment found, allow more spaces.
 
1457
# optional trailing comments
 
1458
)*
 
1459
(?: ,
 
1460
[\040\t]*                    # Nab whitespace.
 
1461
(?:
 
1462
\(                              #  (
 
1463
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1464
(?:                                 #       (
 
1465
(?:  \\ [^\x80-\xff]  |
 
1466
\(                            #  (
 
1467
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1468
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1469
\)                           #                       )
 
1470
)    #         special
 
1471
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1472
)*                                  #            )*
 
1473
\)                             #                )
 
1474
[\040\t]* )*    # If comment found, allow more spaces.
 
1475
@
 
1476
[\040\t]*                    # Nab whitespace.
 
1477
(?:
 
1478
\(                              #  (
 
1479
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1480
(?:                                 #       (
 
1481
(?:  \\ [^\x80-\xff]  |
 
1482
\(                            #  (
 
1483
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1484
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1485
\)                           #                       )
 
1486
)    #         special
 
1487
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1488
)*                                  #            )*
 
1489
\)                             #                )
 
1490
[\040\t]* )*    # If comment found, allow more spaces.
 
1491
(?:
 
1492
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1493
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1494
|
 
1495
\[                            # [
 
1496
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
 
1497
\]                           #           ]
 
1498
)
 
1499
[\040\t]*                    # Nab whitespace.
 
1500
(?:
 
1501
\(                              #  (
 
1502
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1503
(?:                                 #       (
 
1504
(?:  \\ [^\x80-\xff]  |
 
1505
\(                            #  (
 
1506
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1507
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1508
\)                           #                       )
 
1509
)    #         special
 
1510
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1511
)*                                  #            )*
 
1512
\)                             #                )
 
1513
[\040\t]* )*    # If comment found, allow more spaces.
 
1514
# optional trailing comments
 
1515
(?:
 
1516
\.
 
1517
[\040\t]*                    # Nab whitespace.
 
1518
(?:
 
1519
\(                              #  (
 
1520
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1521
(?:                                 #       (
 
1522
(?:  \\ [^\x80-\xff]  |
 
1523
\(                            #  (
 
1524
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1525
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1526
\)                           #                       )
 
1527
)    #         special
 
1528
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1529
)*                                  #            )*
 
1530
\)                             #                )
 
1531
[\040\t]* )*    # If comment found, allow more spaces.
 
1532
(?:
 
1533
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1534
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1535
|
 
1536
\[                            # [
 
1537
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
 
1538
\]                           #           ]
 
1539
)
 
1540
[\040\t]*                    # Nab whitespace.
 
1541
(?:
 
1542
\(                              #  (
 
1543
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1544
(?:                                 #       (
 
1545
(?:  \\ [^\x80-\xff]  |
 
1546
\(                            #  (
 
1547
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1548
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1549
\)                           #                       )
 
1550
)    #         special
 
1551
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1552
)*                                  #            )*
 
1553
\)                             #                )
 
1554
[\040\t]* )*    # If comment found, allow more spaces.
 
1555
# optional trailing comments
 
1556
)*
 
1557
)*  # additional domains
 
1558
:
 
1559
[\040\t]*                    # Nab whitespace.
 
1560
(?:
 
1561
\(                              #  (
 
1562
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1563
(?:                                 #       (
 
1564
(?:  \\ [^\x80-\xff]  |
 
1565
\(                            #  (
 
1566
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1567
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1568
\)                           #                       )
 
1569
)    #         special
 
1570
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1571
)*                                  #            )*
 
1572
\)                             #                )
 
1573
[\040\t]* )*    # If comment found, allow more spaces.
 
1574
# optional trailing comments
 
1575
)?     #       optional route
 
1576
(?:
 
1577
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1578
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1579
# Atom
 
1580
|                       #  or
 
1581
"                                     # "
 
1582
[^\\\x80-\xff\n\015"] *                            #   normal
 
1583
(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
 
1584
"                                     #        "
 
1585
# Quoted string
 
1586
)
 
1587
[\040\t]*                    # Nab whitespace.
 
1588
(?:
 
1589
\(                              #  (
 
1590
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1591
(?:                                 #       (
 
1592
(?:  \\ [^\x80-\xff]  |
 
1593
\(                            #  (
 
1594
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1595
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1596
\)                           #                       )
 
1597
)    #         special
 
1598
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1599
)*                                  #            )*
 
1600
\)                             #                )
 
1601
[\040\t]* )*    # If comment found, allow more spaces.
 
1602
(?:
 
1603
\.
 
1604
[\040\t]*                    # Nab whitespace.
 
1605
(?:
 
1606
\(                              #  (
 
1607
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1608
(?:                                 #       (
 
1609
(?:  \\ [^\x80-\xff]  |
 
1610
\(                            #  (
 
1611
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1612
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1613
\)                           #                       )
 
1614
)    #         special
 
1615
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1616
)*                                  #            )*
 
1617
\)                             #                )
 
1618
[\040\t]* )*    # If comment found, allow more spaces.
 
1619
(?:
 
1620
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1621
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1622
# Atom
 
1623
|                       #  or
 
1624
"                                     # "
 
1625
[^\\\x80-\xff\n\015"] *                            #   normal
 
1626
(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
 
1627
"                                     #        "
 
1628
# Quoted string
 
1629
)
 
1630
[\040\t]*                    # Nab whitespace.
 
1631
(?:
 
1632
\(                              #  (
 
1633
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1634
(?:                                 #       (
 
1635
(?:  \\ [^\x80-\xff]  |
 
1636
\(                            #  (
 
1637
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1638
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1639
\)                           #                       )
 
1640
)    #         special
 
1641
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1642
)*                                  #            )*
 
1643
\)                             #                )
 
1644
[\040\t]* )*    # If comment found, allow more spaces.
 
1645
# additional words
 
1646
)*
 
1647
@
 
1648
[\040\t]*                    # Nab whitespace.
 
1649
(?:
 
1650
\(                              #  (
 
1651
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1652
(?:                                 #       (
 
1653
(?:  \\ [^\x80-\xff]  |
 
1654
\(                            #  (
 
1655
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1656
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1657
\)                           #                       )
 
1658
)    #         special
 
1659
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1660
)*                                  #            )*
 
1661
\)                             #                )
 
1662
[\040\t]* )*    # If comment found, allow more spaces.
 
1663
(?:
 
1664
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1665
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1666
|
 
1667
\[                            # [
 
1668
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
 
1669
\]                           #           ]
 
1670
)
 
1671
[\040\t]*                    # Nab whitespace.
 
1672
(?:
 
1673
\(                              #  (
 
1674
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1675
(?:                                 #       (
 
1676
(?:  \\ [^\x80-\xff]  |
 
1677
\(                            #  (
 
1678
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1679
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1680
\)                           #                       )
 
1681
)    #         special
 
1682
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1683
)*                                  #            )*
 
1684
\)                             #                )
 
1685
[\040\t]* )*    # If comment found, allow more spaces.
 
1686
# optional trailing comments
 
1687
(?:
 
1688
\.
 
1689
[\040\t]*                    # Nab whitespace.
 
1690
(?:
 
1691
\(                              #  (
 
1692
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1693
(?:                                 #       (
 
1694
(?:  \\ [^\x80-\xff]  |
 
1695
\(                            #  (
 
1696
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1697
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1698
\)                           #                       )
 
1699
)    #         special
 
1700
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1701
)*                                  #            )*
 
1702
\)                             #                )
 
1703
[\040\t]* )*    # If comment found, allow more spaces.
 
1704
(?:
 
1705
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 
1706
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 
1707
|
 
1708
\[                            # [
 
1709
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
 
1710
\]                           #           ]
 
1711
)
 
1712
[\040\t]*                    # Nab whitespace.
 
1713
(?:
 
1714
\(                              #  (
 
1715
[^\\\x80-\xff\n\015()] *                             #     normal*
 
1716
(?:                                 #       (
 
1717
(?:  \\ [^\x80-\xff]  |
 
1718
\(                            #  (
 
1719
[^\\\x80-\xff\n\015()] *                            #     normal*
 
1720
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 
1721
\)                           #                       )
 
1722
)    #         special
 
1723
[^\\\x80-\xff\n\015()] *                         #         normal*
 
1724
)*                                  #            )*
 
1725
\)                             #                )
 
1726
[\040\t]* )*    # If comment found, allow more spaces.
 
1727
# optional trailing comments
 
1728
)*
 
1729
#       address spec
 
1730
>                    #                 >
 
1731
# name and address
 
1732
)
 
1733
/x
 
1734
    Alan Other <user\@dom.ain>
 
1735
 0: Alan Other <user@dom.ain>
 
1736
    <user\@dom.ain>
 
1737
 0: user@dom.ain
 
1738
    user\@dom.ain
 
1739
 0: user@dom.ain
 
1740
    \"A. Other\" <user.1234\@dom.ain> (a comment)
 
1741
 0: "A. Other" <user.1234@dom.ain>
 
1742
    A. Other <user.1234\@dom.ain> (a comment)
 
1743
 0:  Other <user.1234@dom.ain>
 
1744
    \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
 
1745
 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
 
1746
    A missing angle <user\@some.where
 
1747
 0: user@some.where
 
1748
    *** Failers
 
1749
No match
 
1750
    The quick brown fox
 
1751
No match
 
1752
 
 
1753
/abc\0def\00pqr\000xyz\0000AB/
 
1754
    abc\0def\00pqr\000xyz\0000AB
 
1755
 0: abc\x00def\x00pqr\x00xyz\x000AB
 
1756
    abc456 abc\0def\00pqr\000xyz\0000ABCDE
 
1757
 0: abc\x00def\x00pqr\x00xyz\x000AB
 
1758
 
 
1759
/abc\x0def\x00pqr\x000xyz\x0000AB/
 
1760
    abc\x0def\x00pqr\x000xyz\x0000AB
 
1761
 0: abc\x0def\x00pqr\x000xyz\x0000AB
 
1762
    abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
 
1763
 0: abc\x0def\x00pqr\x000xyz\x0000AB
 
1764
 
 
1765
/^[\000-\037]/
 
1766
    \0A
 
1767
 0: \x00
 
1768
    \01B
 
1769
 0: \x01
 
1770
    \037C
 
1771
 0: \x1f
 
1772
 
 
1773
/\0*/
 
1774
    \0\0\0\0
 
1775
 0: \x00\x00\x00\x00
 
1776
 
 
1777
/A\x0{2,3}Z/
 
1778
    The A\x0\x0Z
 
1779
 0: A\x00\x00Z
 
1780
    An A\0\x0\0Z
 
1781
 0: A\x00\x00\x00Z
 
1782
    *** Failers
 
1783
No match
 
1784
    A\0Z
 
1785
No match
 
1786
    A\0\x0\0\x0Z
 
1787
No match
 
1788
 
 
1789
/^(cow|)\1(bell)/
 
1790
    cowcowbell
 
1791
 0: cowcowbell
 
1792
 1: cow
 
1793
 2: bell
 
1794
    bell
 
1795
 0: bell
 
1796
 1: 
 
1797
 2: bell
 
1798
    *** Failers
 
1799
No match
 
1800
    cowbell
 
1801
No match
 
1802
 
 
1803
/^\s/
 
1804
    \040abc
 
1805
 0:  
 
1806
    \x0cabc
 
1807
 0: \x0c
 
1808
    \nabc
 
1809
 0: \x0a
 
1810
    \rabc
 
1811
 0: \x0d
 
1812
    \tabc
 
1813
 0: \x09
 
1814
    *** Failers
 
1815
No match
 
1816
    abc
 
1817
No match
 
1818
 
 
1819
/^a     b
 
1820
       c/x
 
1821
    abc
 
1822
 0: abc
 
1823
 
 
1824
/^(a|)\1*b/
 
1825
    ab
 
1826
 0: ab
 
1827
 1: a
 
1828
    aaaab
 
1829
 0: aaaab
 
1830
 1: a
 
1831
    b
 
1832
 0: b
 
1833
 1: 
 
1834
    *** Failers
 
1835
No match
 
1836
    acb
 
1837
No match
 
1838
 
 
1839
/^(a|)\1+b/
 
1840
    aab
 
1841
 0: aab
 
1842
 1: a
 
1843
    aaaab
 
1844
 0: aaaab
 
1845
 1: a
 
1846
    b
 
1847
 0: b
 
1848
 1: 
 
1849
    *** Failers
 
1850
No match
 
1851
    ab
 
1852
No match
 
1853
 
 
1854
/^(a|)\1?b/
 
1855
    ab
 
1856
 0: ab
 
1857
 1: a
 
1858
    aab
 
1859
 0: aab
 
1860
 1: a
 
1861
    b
 
1862
 0: b
 
1863
 1: 
 
1864
    *** Failers
 
1865
No match
 
1866
    acb
 
1867
No match
 
1868
 
 
1869
/^(a|)\1{2}b/
 
1870
    aaab
 
1871
 0: aaab
 
1872
 1: a
 
1873
    b
 
1874
 0: b
 
1875
 1: 
 
1876
    *** Failers
 
1877
No match
 
1878
    ab
 
1879
No match
 
1880
    aab
 
1881
No match
 
1882
    aaaab
 
1883
No match
 
1884
 
 
1885
/^(a|)\1{2,3}b/
 
1886
    aaab
 
1887
 0: aaab
 
1888
 1: a
 
1889
    aaaab
 
1890
 0: aaaab
 
1891
 1: a
 
1892
    b
 
1893
 0: b
 
1894
 1: 
 
1895
    *** Failers
 
1896
No match
 
1897
    ab
 
1898
No match
 
1899
    aab
 
1900
No match
 
1901
    aaaaab
 
1902
No match
 
1903
 
 
1904
/ab{1,3}bc/
 
1905
    abbbbc
 
1906
 0: abbbbc
 
1907
    abbbc
 
1908
 0: abbbc
 
1909
    abbc
 
1910
 0: abbc
 
1911
    *** Failers
 
1912
No match
 
1913
    abc
 
1914
No match
 
1915
    abbbbbc
 
1916
No match
 
1917
 
 
1918
/([^.]*)\.([^:]*):[T ]+(.*)/
 
1919
    track1.title:TBlah blah blah
 
1920
 0: track1.title:TBlah blah blah
 
1921
 1: track1
 
1922
 2: title
 
1923
 3: Blah blah blah
 
1924
 
 
1925
/([^.]*)\.([^:]*):[T ]+(.*)/i
 
1926
    track1.title:TBlah blah blah
 
1927
 0: track1.title:TBlah blah blah
 
1928
 1: track1
 
1929
 2: title
 
1930
 3: Blah blah blah
 
1931
 
 
1932
/([^.]*)\.([^:]*):[t ]+(.*)/i
 
1933
    track1.title:TBlah blah blah
 
1934
 0: track1.title:TBlah blah blah
 
1935
 1: track1
 
1936
 2: title
 
1937
 3: Blah blah blah
 
1938
 
 
1939
/^[W-c]+$/
 
1940
    WXY_^abc
 
1941
 0: WXY_^abc
 
1942
    *** Failers
 
1943
No match
 
1944
    wxy
 
1945
No match
 
1946
 
 
1947
/^[W-c]+$/i
 
1948
    WXY_^abc
 
1949
 0: WXY_^abc
 
1950
    wxy_^ABC
 
1951
 0: wxy_^ABC
 
1952
 
 
1953
/^[\x3f-\x5F]+$/i
 
1954
    WXY_^abc
 
1955
 0: WXY_^abc
 
1956
    wxy_^ABC
 
1957
 0: wxy_^ABC
 
1958
 
 
1959
/^abc$/m
 
1960
    abc
 
1961
 0: abc
 
1962
    qqq\nabc
 
1963
 0: abc
 
1964
    abc\nzzz
 
1965
 0: abc
 
1966
    qqq\nabc\nzzz
 
1967
 0: abc
 
1968
 
 
1969
/^abc$/
 
1970
    abc
 
1971
 0: abc
 
1972
    *** Failers
 
1973
No match
 
1974
    qqq\nabc
 
1975
No match
 
1976
    abc\nzzz
 
1977
No match
 
1978
    qqq\nabc\nzzz
 
1979
No match
 
1980
 
 
1981
/\Aabc\Z/m
 
1982
    abc
 
1983
 0: abc
 
1984
    abc\n 
 
1985
 0: abc
 
1986
    *** Failers
 
1987
No match
 
1988
    qqq\nabc
 
1989
No match
 
1990
    abc\nzzz
 
1991
No match
 
1992
    qqq\nabc\nzzz
 
1993
No match
 
1994
    
 
1995
/\A(.)*\Z/s
 
1996
    abc\ndef
 
1997
 0: abc\x0adef
 
1998
 1: f
 
1999
 
 
2000
/\A(.)*\Z/m
 
2001
    *** Failers
 
2002
 0: *** Failers
 
2003
 1: s
 
2004
    abc\ndef
 
2005
No match
 
2006
 
 
2007
/(?:b)|(?::+)/
 
2008
    b::c
 
2009
 0: b
 
2010
    c::b
 
2011
 0: ::
 
2012
 
 
2013
/[-az]+/
 
2014
    az-
 
2015
 0: az-
 
2016
    *** Failers
 
2017
 0: a
 
2018
    b
 
2019
No match
 
2020
 
 
2021
/[az-]+/
 
2022
    za-
 
2023
 0: za-
 
2024
    *** Failers
 
2025
 0: a
 
2026
    b
 
2027
No match
 
2028
 
 
2029
/[a\-z]+/
 
2030
    a-z
 
2031
 0: a-z
 
2032
    *** Failers
 
2033
 0: a
 
2034
    b
 
2035
No match
 
2036
 
 
2037
/[a-z]+/
 
2038
    abcdxyz
 
2039
 0: abcdxyz
 
2040
 
 
2041
/[\d-]+/
 
2042
    12-34
 
2043
 0: 12-34
 
2044
    *** Failers
 
2045
No match
 
2046
    aaa
 
2047
No match
 
2048
 
 
2049
/[\d-z]+/
 
2050
    12-34z
 
2051
 0: 12-34z
 
2052
    *** Failers
 
2053
No match
 
2054
    aaa
 
2055
No match
 
2056
 
 
2057
/\x5c/
 
2058
    \\
 
2059
 0: \
 
2060
 
 
2061
/\x20Z/
 
2062
    the Zoo
 
2063
 0:  Z
 
2064
    *** Failers
 
2065
No match
 
2066
    Zulu
 
2067
No match
 
2068
 
 
2069
/(abc)\1/i
 
2070
    abcabc
 
2071
 0: abcabc
 
2072
 1: abc
 
2073
    ABCabc
 
2074
 0: ABCabc
 
2075
 1: ABC
 
2076
    abcABC
 
2077
 0: abcABC
 
2078
 1: abc
 
2079
 
 
2080
/ab{3cd/
 
2081
    ab{3cd
 
2082
 0: ab{3cd
 
2083
 
 
2084
/ab{3,cd/
 
2085
    ab{3,cd
 
2086
 0: ab{3,cd
 
2087
 
 
2088
/ab{3,4a}cd/
 
2089
    ab{3,4a}cd
 
2090
 0: ab{3,4a}cd
 
2091
 
 
2092
/{4,5a}bc/
 
2093
    {4,5a}bc
 
2094
 0: {4,5a}bc
 
2095
 
 
2096
/abc$/
 
2097
    abc
 
2098
 0: abc
 
2099
    abc\n
 
2100
 0: abc
 
2101
    *** Failers
 
2102
No match
 
2103
    abc\ndef
 
2104
No match
 
2105
 
 
2106
/(abc)\123/
 
2107
    abc\x53
 
2108
 0: abcS
 
2109
 1: abc
 
2110
 
 
2111
/(abc)\223/
 
2112
    abc\x93
 
2113
 0: abc\x93
 
2114
 1: abc
 
2115
 
 
2116
/(abc)\323/
 
2117
    abc\xd3
 
2118
 0: abc\xd3
 
2119
 1: abc
 
2120
 
 
2121
/(abc)\100/
 
2122
    abc\x40
 
2123
 0: abc@
 
2124
 1: abc
 
2125
    abc\100
 
2126
 0: abc@
 
2127
 1: abc
 
2128
 
 
2129
/(abc)\1000/
 
2130
    abc\x400
 
2131
 0: abc@0
 
2132
 1: abc
 
2133
    abc\x40\x30
 
2134
 0: abc@0
 
2135
 1: abc
 
2136
    abc\1000
 
2137
 0: abc@0
 
2138
 1: abc
 
2139
    abc\100\x30
 
2140
 0: abc@0
 
2141
 1: abc
 
2142
    abc\100\060
 
2143
 0: abc@0
 
2144
 1: abc
 
2145
    abc\100\60
 
2146
 0: abc@0
 
2147
 1: abc
 
2148
 
 
2149
/abc\81/
 
2150
    abc\081
 
2151
 0: abc\x0081
 
2152
    abc\0\x38\x31
 
2153
 0: abc\x0081
 
2154
 
 
2155
/abc\91/
 
2156
    abc\091
 
2157
 0: abc\x0091
 
2158
    abc\0\x39\x31
 
2159
 0: abc\x0091
 
2160
 
 
2161
/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/
 
2162
    abcdefghijkllS
 
2163
 0: abcdefghijkllS
 
2164
 1: a
 
2165
 2: b
 
2166
 3: c
 
2167
 4: d
 
2168
 5: e
 
2169
 6: f
 
2170
 7: g
 
2171
 8: h
 
2172
 9: i
 
2173
10: j
 
2174
11: k
 
2175
12: l
 
2176
 
 
2177
/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
 
2178
    abcdefghijk\12S
 
2179
 0: abcdefghijk\x0aS
 
2180
 1: a
 
2181
 2: b
 
2182
 3: c
 
2183
 4: d
 
2184
 5: e
 
2185
 6: f
 
2186
 7: g
 
2187
 8: h
 
2188
 9: i
 
2189
10: j
 
2190
11: k
 
2191
 
 
2192
/ab\idef/
 
2193
    abidef
 
2194
 0: abidef
 
2195
 
 
2196
/a{0}bc/
 
2197
    bc
 
2198
 0: bc
 
2199
 
 
2200
/(a|(bc)){0,0}?xyz/
 
2201
    xyz
 
2202
 0: xyz
 
2203
 
 
2204
/abc[\10]de/
 
2205
    abc\010de
 
2206
 0: abc\x08de
 
2207
 
 
2208
/abc[\1]de/
 
2209
    abc\1de
 
2210
 0: abc\x01de
 
2211
 
 
2212
/(abc)[\1]de/
 
2213
    abc\1de
 
2214
 0: abc\x01de
 
2215
 1: abc
 
2216
 
 
2217
/(?s)a.b/
 
2218
    a\nb
 
2219
 0: a\x0ab
 
2220
 
 
2221
/^([^a])([^\b])([^c]*)([^d]{3,4})/
 
2222
    baNOTccccd
 
2223
 0: baNOTcccc
 
2224
 1: b
 
2225
 2: a
 
2226
 3: NOT
 
2227
 4: cccc
 
2228
    baNOTcccd
 
2229
 0: baNOTccc
 
2230
 1: b
 
2231
 2: a
 
2232
 3: NOT
 
2233
 4: ccc
 
2234
    baNOTccd
 
2235
 0: baNOTcc
 
2236
 1: b
 
2237
 2: a
 
2238
 3: NO
 
2239
 4: Tcc
 
2240
    bacccd
 
2241
 0: baccc
 
2242
 1: b
 
2243
 2: a
 
2244
 3: 
 
2245
 4: ccc
 
2246
    *** Failers
 
2247
 0: *** Failers
 
2248
 1: *
 
2249
 2: *
 
2250
 3: * Fail
 
2251
 4: ers
 
2252
    anything
 
2253
No match
 
2254
    b\bc   
 
2255
No match
 
2256
    baccd
 
2257
No match
 
2258
 
 
2259
/[^a]/
 
2260
    Abc
 
2261
 0: A
 
2262
  
 
2263
/[^a]/i
 
2264
    Abc 
 
2265
 0: b
 
2266
 
 
2267
/[^a]+/
 
2268
    AAAaAbc
 
2269
 0: AAA
 
2270
  
 
2271
/[^a]+/i
 
2272
    AAAaAbc 
 
2273
 0: bc
 
2274
 
 
2275
/[^a]+/
 
2276
    bbb\nccc
 
2277
 0: bbb\x0accc
 
2278
   
 
2279
/[^k]$/
 
2280
    abc
 
2281
 0: c
 
2282
    *** Failers
 
2283
 0: s
 
2284
    abk
 
2285
No match
 
2286
   
 
2287
/[^k]{2,3}$/
 
2288
    abc
 
2289
 0: abc
 
2290
    kbc
 
2291
 0: bc
 
2292
    kabc
 
2293
 0: abc
 
2294
    *** Failers
 
2295
 0: ers
 
2296
    abk
 
2297
No match
 
2298
    akb
 
2299
No match
 
2300
    akk 
 
2301
No match
 
2302
 
 
2303
/^\d{8,}\@.+[^k]$/
 
2304
    12345678\@a.b.c.d
 
2305
 0: 12345678@a.b.c.d
 
2306
    123456789\@x.y.z
 
2307
 0: 123456789@x.y.z
 
2308
    *** Failers
 
2309
No match
 
2310
    12345678\@x.y.uk
 
2311
No match
 
2312
    1234567\@a.b.c.d       
 
2313
No match
 
2314
 
 
2315
/(a)\1{8,}/
 
2316
    aaaaaaaaa
 
2317
 0: aaaaaaaaa
 
2318
 1: a
 
2319
    aaaaaaaaaa
 
2320
 0: aaaaaaaaaa
 
2321
 1: a
 
2322
    *** Failers
 
2323
No match
 
2324
    aaaaaaa   
 
2325
No match
 
2326
 
 
2327
/[^a]/
 
2328
    aaaabcd
 
2329
 0: b
 
2330
    aaAabcd 
 
2331
 0: A
 
2332
 
 
2333
/[^a]/i
 
2334
    aaaabcd
 
2335
 0: b
 
2336
    aaAabcd 
 
2337
 0: b
 
2338
 
 
2339
/[^az]/
 
2340
    aaaabcd
 
2341
 0: b
 
2342
    aaAabcd 
 
2343
 0: A
 
2344
 
 
2345
/[^az]/i
 
2346
    aaaabcd
 
2347
 0: b
 
2348
    aaAabcd 
 
2349
 0: b
 
2350
 
 
2351
/\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/
 
2352
 \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
 
2353
 0: \x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff
 
2354
 
 
2355
/P[^*]TAIRE[^*]{1,6}?LL/
 
2356
    xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
 
2357
 0: PSTAIREISLL
 
2358
 
 
2359
/P[^*]TAIRE[^*]{1,}?LL/
 
2360
    xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
 
2361
 0: PSTAIREISLL
 
2362
 
 
2363
/(\.\d\d[1-9]?)\d+/
 
2364
    1.230003938
 
2365
 0: .230003938
 
2366
 1: .23
 
2367
    1.875000282   
 
2368
 0: .875000282
 
2369
 1: .875
 
2370
    1.235  
 
2371
 0: .235
 
2372
 1: .23
 
2373
                  
 
2374
/(\.\d\d((?=0)|\d(?=\d)))/
 
2375
    1.230003938      
 
2376
 0: .23
 
2377
 1: .23
 
2378
 2: 
 
2379
    1.875000282
 
2380
 0: .875
 
2381
 1: .875
 
2382
 2: 5
 
2383
    *** Failers 
 
2384
No match
 
2385
    1.235 
 
2386
No match
 
2387
    
 
2388
/a(?)b/
 
2389
    ab 
 
2390
 0: ab
 
2391
 
 
2392
/\b(foo)\s+(\w+)/i
 
2393
    Food is on the foo table
 
2394
 0: foo table
 
2395
 1: foo
 
2396
 2: table
 
2397
    
 
2398
/foo(.*)bar/
 
2399
    The food is under the bar in the barn.
 
2400
 0: food is under the bar in the bar
 
2401
 1: d is under the bar in the 
 
2402
    
 
2403
/foo(.*?)bar/  
 
2404
    The food is under the bar in the barn.
 
2405
 0: food is under the bar
 
2406
 1: d is under the 
 
2407
 
 
2408
/(.*)(\d*)/
 
2409
    I have 2 numbers: 53147
 
2410
 0: I have 2 numbers: 53147
 
2411
 1: I have 2 numbers: 53147
 
2412
 2: 
 
2413
    
 
2414
/(.*)(\d+)/
 
2415
    I have 2 numbers: 53147
 
2416
 0: I have 2 numbers: 53147
 
2417
 1: I have 2 numbers: 5314
 
2418
 2: 7
 
2419
 
 
2420
/(.*?)(\d*)/
 
2421
    I have 2 numbers: 53147
 
2422
 0: 
 
2423
 1: 
 
2424
 2: 
 
2425
 
 
2426
/(.*?)(\d+)/
 
2427
    I have 2 numbers: 53147
 
2428
 0: I have 2
 
2429
 1: I have 
 
2430
 2: 2
 
2431
 
 
2432
/(.*)(\d+)$/
 
2433
    I have 2 numbers: 53147
 
2434
 0: I have 2 numbers: 53147
 
2435
 1: I have 2 numbers: 5314
 
2436
 2: 7
 
2437
 
 
2438
/(.*?)(\d+)$/
 
2439
    I have 2 numbers: 53147
 
2440
 0: I have 2 numbers: 53147
 
2441
 1: I have 2 numbers: 
 
2442
 2: 53147
 
2443
 
 
2444
/(.*)\b(\d+)$/
 
2445
    I have 2 numbers: 53147
 
2446
 0: I have 2 numbers: 53147
 
2447
 1: I have 2 numbers: 
 
2448
 2: 53147
 
2449
 
 
2450
/(.*\D)(\d+)$/
 
2451
    I have 2 numbers: 53147
 
2452
 0: I have 2 numbers: 53147
 
2453
 1: I have 2 numbers: 
 
2454
 2: 53147
 
2455
 
 
2456
/^\D*(?!123)/
 
2457
    ABC123
 
2458
 0: AB
 
2459
     
 
2460
/^(\D*)(?=\d)(?!123)/
 
2461
    ABC445
 
2462
 0: ABC
 
2463
 1: ABC
 
2464
    *** Failers
 
2465
No match
 
2466
    ABC123
 
2467
No match
 
2468
    
 
2469
/^[W-]46]/
 
2470
    W46]789 
 
2471
 0: W46]
 
2472
    -46]789
 
2473
 0: -46]
 
2474
    *** Failers
 
2475
No match
 
2476
    Wall
 
2477
No match
 
2478
    Zebra
 
2479
No match
 
2480
    42
 
2481
No match
 
2482
    [abcd] 
 
2483
No match
 
2484
    ]abcd[
 
2485
No match
 
2486
       
 
2487
/^[W-\]46]/
 
2488
    W46]789 
 
2489
 0: W
 
2490
    Wall
 
2491
 0: W
 
2492
    Zebra
 
2493
 0: Z
 
2494
    Xylophone  
 
2495
 0: X
 
2496
    42
 
2497
 0: 4
 
2498
    [abcd] 
 
2499
 0: [
 
2500
    ]abcd[
 
2501
 0: ]
 
2502
    \\backslash 
 
2503
 0: \
 
2504
    *** Failers
 
2505
No match
 
2506
    -46]789
 
2507
No match
 
2508
    well
 
2509
No match
 
2510
    
 
2511
/\d\d\/\d\d\/\d\d\d\d/
 
2512
    01/01/2000
 
2513
 0: 01/01/2000
 
2514
 
 
2515
/word (?:[a-zA-Z0-9]+ ){0,10}otherword/
 
2516
  word cat dog elephant mussel cow horse canary baboon snake shark otherword
 
2517
 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
 
2518
  word cat dog elephant mussel cow horse canary baboon snake shark
 
2519
No match
 
2520
 
 
2521
/word (?:[a-zA-Z0-9]+ ){0,300}otherword/
 
2522
  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
 
2523
No match
 
2524
 
 
2525
/^(a){0,0}/
 
2526
    bcd
 
2527
 0: 
 
2528
    abc
 
2529
 0: 
 
2530
    aab     
 
2531
 0: 
 
2532
 
 
2533
/^(a){0,1}/
 
2534
    bcd
 
2535
 0: 
 
2536
    abc
 
2537
 0: a
 
2538
 1: a
 
2539
    aab  
 
2540
 0: a
 
2541
 1: a
 
2542
 
 
2543
/^(a){0,2}/
 
2544
    bcd
 
2545
 0: 
 
2546
    abc
 
2547
 0: a
 
2548
 1: a
 
2549
    aab  
 
2550
 0: aa
 
2551
 1: a
 
2552
 
 
2553
/^(a){0,3}/
 
2554
    bcd
 
2555
 0: 
 
2556
    abc
 
2557
 0: a
 
2558
 1: a
 
2559
    aab
 
2560
 0: aa
 
2561
 1: a
 
2562
    aaa   
 
2563
 0: aaa
 
2564
 1: a
 
2565
 
 
2566
/^(a){0,}/
 
2567
    bcd
 
2568
 0: 
 
2569
    abc
 
2570
 0: a
 
2571
 1: a
 
2572
    aab
 
2573
 0: aa
 
2574
 1: a
 
2575
    aaa
 
2576
 0: aaa
 
2577
 1: a
 
2578
    aaaaaaaa    
 
2579
 0: aaaaaaaa
 
2580
 1: a
 
2581
 
 
2582
/^(a){1,1}/
 
2583
    bcd
 
2584
No match
 
2585
    abc
 
2586
 0: a
 
2587
 1: a
 
2588
    aab  
 
2589
 0: a
 
2590
 1: a
 
2591
 
 
2592
/^(a){1,2}/
 
2593
    bcd
 
2594
No match
 
2595
    abc
 
2596
 0: a
 
2597
 1: a
 
2598
    aab  
 
2599
 0: aa
 
2600
 1: a
 
2601
 
 
2602
/^(a){1,3}/
 
2603
    bcd
 
2604
No match
 
2605
    abc
 
2606
 0: a
 
2607
 1: a
 
2608
    aab
 
2609
 0: aa
 
2610
 1: a
 
2611
    aaa   
 
2612
 0: aaa
 
2613
 1: a
 
2614
 
 
2615
/^(a){1,}/
 
2616
    bcd
 
2617
No match
 
2618
    abc
 
2619
 0: a
 
2620
 1: a
 
2621
    aab
 
2622
 0: aa
 
2623
 1: a
 
2624
    aaa
 
2625
 0: aaa
 
2626
 1: a
 
2627
    aaaaaaaa    
 
2628
 0: aaaaaaaa
 
2629
 1: a
 
2630
 
 
2631
/.*\.gif/
 
2632
    borfle\nbib.gif\nno
 
2633
 0: bib.gif
 
2634
 
 
2635
/.{0,}\.gif/
 
2636
    borfle\nbib.gif\nno
 
2637
 0: bib.gif
 
2638
 
 
2639
/.*\.gif/m
 
2640
    borfle\nbib.gif\nno
 
2641
 0: bib.gif
 
2642
 
 
2643
/.*\.gif/s
 
2644
    borfle\nbib.gif\nno
 
2645
 0: borfle\x0abib.gif
 
2646
 
 
2647
/.*\.gif/ms
 
2648
    borfle\nbib.gif\nno
 
2649
 0: borfle\x0abib.gif
 
2650
    
 
2651
/.*$/
 
2652
    borfle\nbib.gif\nno
 
2653
 0: no
 
2654
 
 
2655
/.*$/m
 
2656
    borfle\nbib.gif\nno
 
2657
 0: borfle
 
2658
 
 
2659
/.*$/s
 
2660
    borfle\nbib.gif\nno
 
2661
 0: borfle\x0abib.gif\x0ano
 
2662
 
 
2663
/.*$/ms
 
2664
    borfle\nbib.gif\nno
 
2665
 0: borfle\x0abib.gif\x0ano
 
2666
    
 
2667
/.*$/
 
2668
    borfle\nbib.gif\nno\n
 
2669
 0: no
 
2670
 
 
2671
/.*$/m
 
2672
    borfle\nbib.gif\nno\n
 
2673
 0: borfle
 
2674
 
 
2675
/.*$/s
 
2676
    borfle\nbib.gif\nno\n
 
2677
 0: borfle\x0abib.gif\x0ano\x0a
 
2678
 
 
2679
/.*$/ms
 
2680
    borfle\nbib.gif\nno\n
 
2681
 0: borfle\x0abib.gif\x0ano\x0a
 
2682
    
 
2683
/(.*X|^B)/
 
2684
    abcde\n1234Xyz
 
2685
 0: 1234X
 
2686
 1: 1234X
 
2687
    BarFoo 
 
2688
 0: B
 
2689
 1: B
 
2690
    *** Failers
 
2691
No match
 
2692
    abcde\nBar  
 
2693
No match
 
2694
 
 
2695
/(.*X|^B)/m
 
2696
    abcde\n1234Xyz
 
2697
 0: 1234X
 
2698
 1: 1234X
 
2699
    BarFoo 
 
2700
 0: B
 
2701
 1: B
 
2702
    abcde\nBar  
 
2703
 0: B
 
2704
 1: B
 
2705
 
 
2706
/(.*X|^B)/s
 
2707
    abcde\n1234Xyz
 
2708
 0: abcde\x0a1234X
 
2709
 1: abcde\x0a1234X
 
2710
    BarFoo 
 
2711
 0: B
 
2712
 1: B
 
2713
    *** Failers
 
2714
No match
 
2715
    abcde\nBar  
 
2716
No match
 
2717
 
 
2718
/(.*X|^B)/ms
 
2719
    abcde\n1234Xyz
 
2720
 0: abcde\x0a1234X
 
2721
 1: abcde\x0a1234X
 
2722
    BarFoo 
 
2723
 0: B
 
2724
 1: B
 
2725
    abcde\nBar  
 
2726
 0: B
 
2727
 1: B
 
2728
 
 
2729
/(?s)(.*X|^B)/
 
2730
    abcde\n1234Xyz
 
2731
 0: abcde\x0a1234X
 
2732
 1: abcde\x0a1234X
 
2733
    BarFoo 
 
2734
 0: B
 
2735
 1: B
 
2736
    *** Failers 
 
2737
No match
 
2738
    abcde\nBar  
 
2739
No match
 
2740
 
 
2741
/(?s:.*X|^B)/
 
2742
    abcde\n1234Xyz
 
2743
 0: abcde\x0a1234X
 
2744
    BarFoo 
 
2745
 0: B
 
2746
    *** Failers 
 
2747
No match
 
2748
    abcde\nBar  
 
2749
No match
 
2750
 
 
2751
/^.*B/
 
2752
    **** Failers
 
2753
No match
 
2754
    abc\nB
 
2755
No match
 
2756
     
 
2757
/(?s)^.*B/
 
2758
    abc\nB
 
2759
 0: abc\x0aB
 
2760
 
 
2761
/(?m)^.*B/
 
2762
    abc\nB
 
2763
 0: B
 
2764
     
 
2765
/(?ms)^.*B/
 
2766
    abc\nB
 
2767
 0: abc\x0aB
 
2768
 
 
2769
/(?ms)^B/
 
2770
    abc\nB
 
2771
 0: B
 
2772
 
 
2773
/(?s)B$/
 
2774
    B\n
 
2775
 0: B
 
2776
 
 
2777
/^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
 
2778
    123456654321
 
2779
 0: 123456654321
 
2780
  
 
2781
/^\d\d\d\d\d\d\d\d\d\d\d\d/
 
2782
    123456654321 
 
2783
 0: 123456654321
 
2784
 
 
2785
/^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
 
2786
    123456654321
 
2787
 0: 123456654321
 
2788
  
 
2789
/^[abc]{12}/
 
2790
    abcabcabcabc
 
2791
 0: abcabcabcabc
 
2792
    
 
2793
/^[a-c]{12}/
 
2794
    abcabcabcabc
 
2795
 0: abcabcabcabc
 
2796
    
 
2797
/^(a|b|c){12}/
 
2798
    abcabcabcabc 
 
2799
 0: abcabcabcabc
 
2800
 1: c
 
2801
 
 
2802
/^[abcdefghijklmnopqrstuvwxy0123456789]/
 
2803
    n
 
2804
 0: n
 
2805
    *** Failers 
 
2806
No match
 
2807
    z 
 
2808
No match
 
2809
 
 
2810
/abcde{0,0}/
 
2811
    abcd
 
2812
 0: abcd
 
2813
    *** Failers
 
2814
No match
 
2815
    abce  
 
2816
No match
 
2817
 
 
2818
/ab[cd]{0,0}e/
 
2819
    abe
 
2820
 0: abe
 
2821
    *** Failers
 
2822
No match
 
2823
    abcde 
 
2824
No match
 
2825
    
 
2826
/ab(c){0,0}d/
 
2827
    abd
 
2828
 0: abd
 
2829
    *** Failers
 
2830
No match
 
2831
    abcd   
 
2832
No match
 
2833
 
 
2834
/a(b*)/
 
2835
    a
 
2836
 0: a
 
2837
 1: 
 
2838
    ab
 
2839
 0: ab
 
2840
 1: b
 
2841
    abbbb
 
2842
 0: abbbb
 
2843
 1: bbbb
 
2844
    *** Failers
 
2845
 0: a
 
2846
 1: 
 
2847
    bbbbb    
 
2848
No match
 
2849
    
 
2850
/ab\d{0}e/
 
2851
    abe
 
2852
 0: abe
 
2853
    *** Failers
 
2854
No match
 
2855
    ab1e   
 
2856
No match
 
2857
    
 
2858
/"([^\\"]+|\\.)*"/
 
2859
    the \"quick\" brown fox
 
2860
 0: "quick"
 
2861
 1: quick
 
2862
    \"the \\\"quick\\\" brown fox\"
 
2863
 0: "the \"quick\" brown fox"
 
2864
 1:  brown fox
 
2865
 
 
2866
/.*?/g+
 
2867
    abc
 
2868
 0: 
 
2869
 0+ abc
 
2870
 0: a
 
2871
 0+ bc
 
2872
 0: 
 
2873
 0+ bc
 
2874
 0: b
 
2875
 0+ c
 
2876
 0: 
 
2877
 0+ c
 
2878
 0: c
 
2879
 0+ 
 
2880
 0: 
 
2881
 0+ 
 
2882
  
 
2883
/\b/g+
 
2884
    abc 
 
2885
 0: 
 
2886
 0+ abc
 
2887
 0: 
 
2888
 0+ 
 
2889
 
 
2890
/\b/+g
 
2891
    abc 
 
2892
 0: 
 
2893
 0+ abc
 
2894
 0: 
 
2895
 0+ 
 
2896
 
 
2897
//g
 
2898
    abc
 
2899
 0: 
 
2900
 0: 
 
2901
 0: 
 
2902
 0: 
 
2903
 
 
2904
/<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
 
2905
  <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>
 
2906
 0: <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
 
2907
 1:  BGCOLOR='#DBE9E9'
 
2908
 2:  align=left valign=top
 
2909
 3: 43.
 
2910
 4: <a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)
 
2911
 5: 
 
2912
 6: 
 
2913
 7: <unset>
 
2914
 8:  align=left valign=top
 
2915
 9: Lega lstaff.com
 
2916
10:  align=left valign=top
 
2917
11: CA - Statewide
 
2918
 
 
2919
/a[^a]b/
 
2920
    acb
 
2921
 0: acb
 
2922
    a\nb
 
2923
 0: a\x0ab
 
2924
    
 
2925
/a.b/
 
2926
    acb
 
2927
 0: acb
 
2928
    *** Failers 
 
2929
No match
 
2930
    a\nb   
 
2931
No match
 
2932
    
 
2933
/a[^a]b/s
 
2934
    acb
 
2935
 0: acb
 
2936
    a\nb  
 
2937
 0: a\x0ab
 
2938
    
 
2939
/a.b/s
 
2940
    acb
 
2941
 0: acb
 
2942
    a\nb  
 
2943
 0: a\x0ab
 
2944
 
 
2945
/^(b+?|a){1,2}?c/
 
2946
    bac
 
2947
 0: bac
 
2948
 1: a
 
2949
    bbac
 
2950
 0: bbac
 
2951
 1: a
 
2952
    bbbac
 
2953
 0: bbbac
 
2954
 1: a
 
2955
    bbbbac
 
2956
 0: bbbbac
 
2957
 1: a
 
2958
    bbbbbac 
 
2959
 0: bbbbbac
 
2960
 1: a
 
2961
 
 
2962
/^(b+|a){1,2}?c/
 
2963
    bac
 
2964
 0: bac
 
2965
 1: a
 
2966
    bbac
 
2967
 0: bbac
 
2968
 1: a
 
2969
    bbbac
 
2970
 0: bbbac
 
2971
 1: a
 
2972
    bbbbac
 
2973
 0: bbbbac
 
2974
 1: a
 
2975
    bbbbbac 
 
2976
 0: bbbbbac
 
2977
 1: a
 
2978
    
 
2979
/(?!\A)x/m
 
2980
    x\nb\n
 
2981
No match
 
2982
    a\bx\n  
 
2983
 0: x
 
2984
    
 
2985
/\x0{ab}/
 
2986
    \0{ab} 
 
2987
 0: \x00{ab}
 
2988
 
 
2989
/(A|B)*?CD/
 
2990
    CD 
 
2991
 0: CD
 
2992
    
 
2993
/(A|B)*CD/
 
2994
    CD 
 
2995
 0: CD
 
2996
 
 
2997
/(AB)*?\1/
 
2998
    ABABAB
 
2999
 0: ABAB
 
3000
 1: AB
 
3001
 
 
3002
/(AB)*\1/
 
3003
    ABABAB
 
3004
 0: ABABAB
 
3005
 1: AB
 
3006
    
 
3007
/(?<!bar)foo/
 
3008
    foo
 
3009
 0: foo
 
3010
    catfood
 
3011
 0: foo
 
3012
    arfootle
 
3013
 0: foo
 
3014
    rfoosh
 
3015
 0: foo
 
3016
    *** Failers
 
3017
No match
 
3018
    barfoo
 
3019
No match
 
3020
    towbarfoo
 
3021
No match
 
3022
 
 
3023
/\w{3}(?<!bar)foo/
 
3024
    catfood
 
3025
 0: catfoo
 
3026
    *** Failers
 
3027
No match
 
3028
    foo
 
3029
No match
 
3030
    barfoo
 
3031
No match
 
3032
    towbarfoo
 
3033
No match
 
3034
 
 
3035
/(?<=(foo)a)bar/
 
3036
    fooabar
 
3037
 0: bar
 
3038
 1: foo
 
3039
    *** Failers
 
3040
No match
 
3041
    bar
 
3042
No match
 
3043
    foobbar
 
3044
No match
 
3045
      
 
3046
/\Aabc\z/m
 
3047
    abc
 
3048
 0: abc
 
3049
    *** Failers
 
3050
No match
 
3051
    abc\n   
 
3052
No match
 
3053
    qqq\nabc
 
3054
No match
 
3055
    abc\nzzz
 
3056
No match
 
3057
    qqq\nabc\nzzz
 
3058
No match
 
3059
 
 
3060
"(?>.*/)foo"
 
3061
    /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
 
3062
No match
 
3063
 
 
3064
"(?>.*/)foo"
 
3065
    /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
 
3066
 0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
 
3067
 
 
3068
/(?>(\.\d\d[1-9]?))\d+/
 
3069
    1.230003938
 
3070
 0: .230003938
 
3071
 1: .23
 
3072
    1.875000282
 
3073
 0: .875000282
 
3074
 1: .875
 
3075
    *** Failers 
 
3076
No match
 
3077
    1.235 
 
3078
No match
 
3079
 
 
3080
/^((?>\w+)|(?>\s+))*$/
 
3081
    now is the time for all good men to come to the aid of the party
 
3082
 0: now is the time for all good men to come to the aid of the party
 
3083
 1: party
 
3084
    *** Failers
 
3085
No match
 
3086
    this is not a line with only words and spaces!
 
3087
No match
 
3088
    
 
3089
/(\d+)(\w)/
 
3090
    12345a
 
3091
 0: 12345a
 
3092
 1: 12345
 
3093
 2: a
 
3094
    12345+ 
 
3095
 0: 12345
 
3096
 1: 1234
 
3097
 2: 5
 
3098
 
 
3099
/((?>\d+))(\w)/
 
3100
    12345a
 
3101
 0: 12345a
 
3102
 1: 12345
 
3103
 2: a
 
3104
    *** Failers
 
3105
No match
 
3106
    12345+ 
 
3107
No match
 
3108
 
 
3109
/(?>a+)b/
 
3110
    aaab
 
3111
 0: aaab
 
3112
 
 
3113
/((?>a+)b)/
 
3114
    aaab
 
3115
 0: aaab
 
3116
 1: aaab
 
3117
 
 
3118
/(?>(a+))b/
 
3119
    aaab
 
3120
 0: aaab
 
3121
 1: aaa
 
3122
 
 
3123
/(?>b)+/
 
3124
    aaabbbccc
 
3125
 0: bbb
 
3126
 
 
3127
/(?>a+|b+|c+)*c/
 
3128
    aaabbbbccccd
 
3129
 0: aaabbbbc
 
3130
 
 
3131
/((?>[^()]+)|\([^()]*\))+/
 
3132
    ((abc(ade)ufh()()x
 
3133
 0: abc(ade)ufh()()x
 
3134
 1: x
 
3135
    
 
3136
/\(((?>[^()]+)|\([^()]+\))+\)/ 
 
3137
    (abc)
 
3138
 0: (abc)
 
3139
 1: abc
 
3140
    (abc(def)xyz)
 
3141
 0: (abc(def)xyz)
 
3142
 1: xyz
 
3143
    *** Failers
 
3144
No match
 
3145
    ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   
 
3146
No match
 
3147
 
 
3148
/a(?-i)b/i
 
3149
    ab
 
3150
 0: ab
 
3151
    Ab
 
3152
 0: Ab
 
3153
    *** Failers 
 
3154
No match
 
3155
    aB
 
3156
No match
 
3157
    AB
 
3158
No match
 
3159
        
 
3160
/(a (?x)b c)d e/
 
3161
    a bcd e
 
3162
 0: a bcd e
 
3163
 1: a bc
 
3164
    *** Failers
 
3165
No match
 
3166
    a b cd e
 
3167
No match
 
3168
    abcd e   
 
3169
No match
 
3170
    a bcde 
 
3171
No match
 
3172
 
 
3173
/(a b(?x)c d (?-x)e f)/
 
3174
    a bcde f
 
3175
 0: a bcde f
 
3176
 1: a bcde f
 
3177
    *** Failers
 
3178
No match
 
3179
    abcdef  
 
3180
No match
 
3181
 
 
3182
/(a(?i)b)c/
 
3183
    abc
 
3184
 0: abc
 
3185
 1: ab
 
3186
    aBc
 
3187
 0: aBc
 
3188
 1: aB
 
3189
    *** Failers
 
3190
No match
 
3191
    abC
 
3192
No match
 
3193
    aBC  
 
3194
No match
 
3195
    Abc
 
3196
No match
 
3197
    ABc
 
3198
No match
 
3199
    ABC
 
3200
No match
 
3201
    AbC
 
3202
No match
 
3203
    
 
3204
/a(?i:b)c/
 
3205
    abc
 
3206
 0: abc
 
3207
    aBc
 
3208
 0: aBc
 
3209
    *** Failers 
 
3210
No match
 
3211
    ABC
 
3212
No match
 
3213
    abC
 
3214
No match
 
3215
    aBC
 
3216
No match
 
3217
    
 
3218
/a(?i:b)*c/
 
3219
    aBc
 
3220
 0: aBc
 
3221
    aBBc
 
3222
 0: aBBc
 
3223
    *** Failers 
 
3224
No match
 
3225
    aBC
 
3226
No match
 
3227
    aBBC
 
3228
No match
 
3229
    
 
3230
/a(?=b(?i)c)\w\wd/
 
3231
    abcd
 
3232
 0: abcd
 
3233
    abCd
 
3234
 0: abCd
 
3235
    *** Failers
 
3236
No match
 
3237
    aBCd
 
3238
No match
 
3239
    abcD     
 
3240
No match
 
3241
    
 
3242
/(?s-i:more.*than).*million/i
 
3243
    more than million
 
3244
 0: more than million
 
3245
    more than MILLION
 
3246
 0: more than MILLION
 
3247
    more \n than Million 
 
3248
 0: more \x0a than Million
 
3249
    *** Failers
 
3250
No match
 
3251
    MORE THAN MILLION    
 
3252
No match
 
3253
    more \n than \n million 
 
3254
No match
 
3255
 
 
3256
/(?:(?s-i)more.*than).*million/i
 
3257
    more than million
 
3258
 0: more than million
 
3259
    more than MILLION
 
3260
 0: more than MILLION
 
3261
    more \n than Million 
 
3262
 0: more \x0a than Million
 
3263
    *** Failers
 
3264
No match
 
3265
    MORE THAN MILLION    
 
3266
No match
 
3267
    more \n than \n million 
 
3268
No match
 
3269
    
 
3270
/(?>a(?i)b+)+c/ 
 
3271
    abc
 
3272
 0: abc
 
3273
    aBbc
 
3274
 0: aBbc
 
3275
    aBBc 
 
3276
 0: aBBc
 
3277
    *** Failers
 
3278
No match
 
3279
    Abc
 
3280
No match
 
3281
    abAb    
 
3282
No match
 
3283
    abbC 
 
3284
No match
 
3285
    
 
3286
/(?=a(?i)b)\w\wc/
 
3287
    abc
 
3288
 0: abc
 
3289
    aBc
 
3290
 0: aBc
 
3291
    *** Failers
 
3292
No match
 
3293
    Ab 
 
3294
No match
 
3295
    abC
 
3296
No match
 
3297
    aBC     
 
3298
No match
 
3299
    
 
3300
/(?<=a(?i)b)(\w\w)c/
 
3301
    abxxc
 
3302
 0: xxc
 
3303
 1: xx
 
3304
    aBxxc
 
3305
 0: xxc
 
3306
 1: xx
 
3307
    *** Failers
 
3308
No match
 
3309
    Abxxc
 
3310
No match
 
3311
    ABxxc
 
3312
No match
 
3313
    abxxC      
 
3314
No match
 
3315
 
 
3316
/(?:(a)|b)(?(1)A|B)/
 
3317
    aA
 
3318
 0: aA
 
3319
 1: a
 
3320
    bB
 
3321
 0: bB
 
3322
    *** Failers
 
3323
No match
 
3324
    aB
 
3325
No match
 
3326
    bA    
 
3327
No match
 
3328
 
 
3329
/^(a)?(?(1)a|b)+$/
 
3330
    aa
 
3331
 0: aa
 
3332
 1: a
 
3333
    b
 
3334
 0: b
 
3335
    bb  
 
3336
 0: bb
 
3337
    *** Failers
 
3338
No match
 
3339
    ab   
 
3340
No match
 
3341
 
 
3342
/^(?(?=abc)\w{3}:|\d\d)$/
 
3343
    abc:
 
3344
 0: abc:
 
3345
    12
 
3346
 0: 12
 
3347
    *** Failers
 
3348
No match
 
3349
    123
 
3350
No match
 
3351
    xyz    
 
3352
No match
 
3353
 
 
3354
/^(?(?!abc)\d\d|\w{3}:)$/
 
3355
    abc:
 
3356
 0: abc:
 
3357
    12
 
3358
 0: 12
 
3359
    *** Failers
 
3360
No match
 
3361
    123
 
3362
No match
 
3363
    xyz    
 
3364
No match
 
3365
    
 
3366
/(?(?<=foo)bar|cat)/
 
3367
    foobar
 
3368
 0: bar
 
3369
    cat
 
3370
 0: cat
 
3371
    fcat
 
3372
 0: cat
 
3373
    focat   
 
3374
 0: cat
 
3375
    *** Failers
 
3376
No match
 
3377
    foocat  
 
3378
No match
 
3379
 
 
3380
/(?(?<!foo)cat|bar)/
 
3381
    foobar
 
3382
 0: bar
 
3383
    cat
 
3384
 0: cat
 
3385
    fcat
 
3386
 0: cat
 
3387
    focat   
 
3388
 0: cat
 
3389
    *** Failers
 
3390
No match
 
3391
    foocat  
 
3392
No match
 
3393
 
 
3394
/( \( )? [^()]+ (?(1) \) |) /x
 
3395
    abcd
 
3396
 0: abcd
 
3397
    (abcd)
 
3398
 0: (abcd)
 
3399
 1: (
 
3400
    the quick (abcd) fox
 
3401
 0: the quick 
 
3402
    (abcd   
 
3403
 0: abcd
 
3404
 
 
3405
/( \( )? [^()]+ (?(1) \) ) /x
 
3406
    abcd
 
3407
 0: abcd
 
3408
    (abcd)
 
3409
 0: (abcd)
 
3410
 1: (
 
3411
    the quick (abcd) fox
 
3412
 0: the quick 
 
3413
    (abcd   
 
3414
 0: abcd
 
3415
 
 
3416
/^(?(2)a|(1)(2))+$/
 
3417
    12
 
3418
 0: 12
 
3419
 1: 1
 
3420
 2: 2
 
3421
    12a
 
3422
 0: 12a
 
3423
 1: 1
 
3424
 2: 2
 
3425
    12aa
 
3426
 0: 12aa
 
3427
 1: 1
 
3428
 2: 2
 
3429
    *** Failers
 
3430
No match
 
3431
    1234    
 
3432
No match
 
3433
 
 
3434
/((?i)blah)\s+\1/
 
3435
    blah blah
 
3436
 0: blah blah
 
3437
 1: blah
 
3438
    BLAH BLAH
 
3439
 0: BLAH BLAH
 
3440
 1: BLAH
 
3441
    Blah Blah
 
3442
 0: Blah Blah
 
3443
 1: Blah
 
3444
    blaH blaH
 
3445
 0: blaH blaH
 
3446
 1: blaH
 
3447
    *** Failers
 
3448
No match
 
3449
    blah BLAH
 
3450
No match
 
3451
    Blah blah      
 
3452
No match
 
3453
    blaH blah 
 
3454
No match
 
3455
 
 
3456
/((?i)blah)\s+(?i:\1)/
 
3457
    blah blah
 
3458
 0: blah blah
 
3459
 1: blah
 
3460
    BLAH BLAH
 
3461
 0: BLAH BLAH
 
3462
 1: BLAH
 
3463
    Blah Blah
 
3464
 0: Blah Blah
 
3465
 1: Blah
 
3466
    blaH blaH
 
3467
 0: blaH blaH
 
3468
 1: blaH
 
3469
    blah BLAH
 
3470
 0: blah BLAH
 
3471
 1: blah
 
3472
    Blah blah      
 
3473
 0: Blah blah
 
3474
 1: Blah
 
3475
    blaH blah 
 
3476
 0: blaH blah
 
3477
 1: blaH
 
3478
 
 
3479
/(?>a*)*/
 
3480
    a
 
3481
 0: a
 
3482
    aa
 
3483
 0: aa
 
3484
    aaaa
 
3485
 0: aaaa
 
3486
    
 
3487
/(abc|)+/
 
3488
    abc
 
3489
 0: abc
 
3490
 1: 
 
3491
    abcabc
 
3492
 0: abcabc
 
3493
 1: 
 
3494
    abcabcabc
 
3495
 0: abcabcabc
 
3496
 1: 
 
3497
    xyz      
 
3498
 0: 
 
3499
 1: 
 
3500
 
 
3501
/([a]*)*/
 
3502
    a
 
3503
 0: a
 
3504
 1: 
 
3505
    aaaaa 
 
3506
 0: aaaaa
 
3507
 1: 
 
3508
 
 
3509
/([ab]*)*/
 
3510
    a
 
3511
 0: a
 
3512
 1: 
 
3513
    b
 
3514
 0: b
 
3515
 1: 
 
3516
    ababab
 
3517
 0: ababab
 
3518
 1: 
 
3519
    aaaabcde
 
3520
 0: aaaab
 
3521
 1: 
 
3522
    bbbb    
 
3523
 0: bbbb
 
3524
 1: 
 
3525
 
 
3526
/([^a]*)*/
 
3527
    b
 
3528
 0: b
 
3529
 1: 
 
3530
    bbbb
 
3531
 0: bbbb
 
3532
 1: 
 
3533
    aaa   
 
3534
 0: 
 
3535
 1: 
 
3536
 
 
3537
/([^ab]*)*/
 
3538
    cccc
 
3539
 0: cccc
 
3540
 1: 
 
3541
    abab  
 
3542
 0: 
 
3543
 1: 
 
3544
 
 
3545
/([a]*?)*/
 
3546
    a
 
3547
 0: 
 
3548
 1: 
 
3549
    aaaa 
 
3550
 0: 
 
3551
 1: 
 
3552
 
 
3553
/([ab]*?)*/
 
3554
    a
 
3555
 0: 
 
3556
 1: 
 
3557
    b
 
3558
 0: 
 
3559
 1: 
 
3560
    abab
 
3561
 0: 
 
3562
 1: 
 
3563
    baba   
 
3564
 0: 
 
3565
 1: 
 
3566
 
 
3567
/([^a]*?)*/
 
3568
    b
 
3569
 0: 
 
3570
 1: 
 
3571
    bbbb
 
3572
 0: 
 
3573
 1: 
 
3574
    aaa   
 
3575
 0: 
 
3576
 1: 
 
3577
 
 
3578
/([^ab]*?)*/
 
3579
    c
 
3580
 0: 
 
3581
 1: 
 
3582
    cccc
 
3583
 0: 
 
3584
 1: 
 
3585
    baba   
 
3586
 0: 
 
3587
 1: 
 
3588
 
 
3589
/(?>a*)*/
 
3590
    a
 
3591
 0: a
 
3592
    aaabcde 
 
3593
 0: aaa
 
3594
 
 
3595
/((?>a*))*/
 
3596
    aaaaa
 
3597
 0: aaaaa
 
3598
 1: 
 
3599
    aabbaa 
 
3600
 0: aa
 
3601
 1: 
 
3602
 
 
3603
/((?>a*?))*/
 
3604
    aaaaa
 
3605
 0: 
 
3606
 1: 
 
3607
    aabbaa 
 
3608
 0: 
 
3609
 1: 
 
3610
 
 
3611
/(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /x
 
3612
    12-sep-98
 
3613
 0: 12-sep-98
 
3614
    12-09-98
 
3615
 0: 12-09-98
 
3616
    *** Failers
 
3617
No match
 
3618
    sep-12-98
 
3619
No match
 
3620
        
 
3621
/(?<=(foo))bar\1/
 
3622
    foobarfoo
 
3623
 0: barfoo
 
3624
 1: foo
 
3625
    foobarfootling 
 
3626
 0: barfoo
 
3627
 1: foo
 
3628
    *** Failers
 
3629
No match
 
3630
    foobar
 
3631
No match
 
3632
    barfoo   
 
3633
No match
 
3634
 
 
3635
/(?i:saturday|sunday)/
 
3636
    saturday
 
3637
 0: saturday
 
3638
    sunday
 
3639
 0: sunday
 
3640
    Saturday
 
3641
 0: Saturday
 
3642
    Sunday
 
3643
 0: Sunday
 
3644
    SATURDAY
 
3645
 0: SATURDAY
 
3646
    SUNDAY
 
3647
 0: SUNDAY
 
3648
    SunDay
 
3649
 0: SunDay
 
3650
    
 
3651
/(a(?i)bc|BB)x/
 
3652
    abcx
 
3653
 0: abcx
 
3654
 1: abc
 
3655
    aBCx
 
3656
 0: aBCx
 
3657
 1: aBC
 
3658
    bbx
 
3659
 0: bbx
 
3660
 1: bb
 
3661
    BBx
 
3662
 0: BBx
 
3663
 1: BB
 
3664
    *** Failers
 
3665
No match
 
3666
    abcX
 
3667
No match
 
3668
    aBCX
 
3669
No match
 
3670
    bbX
 
3671
No match
 
3672
    BBX               
 
3673
No match
 
3674
 
 
3675
/^([ab](?i)[cd]|[ef])/
 
3676
    ac
 
3677
 0: ac
 
3678
 1: ac
 
3679
    aC
 
3680
 0: aC
 
3681
 1: aC
 
3682
    bD
 
3683
 0: bD
 
3684
 1: bD
 
3685
    elephant
 
3686
 0: e
 
3687
 1: e
 
3688
    Europe 
 
3689
 0: E
 
3690
 1: E
 
3691
    frog
 
3692
 0: f
 
3693
 1: f
 
3694
    France
 
3695
 0: F
 
3696
 1: F
 
3697
    *** Failers
 
3698
No match
 
3699
    Africa     
 
3700
No match
 
3701
 
 
3702
/^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
 
3703
    ab
 
3704
 0: ab
 
3705
 1: ab
 
3706
    aBd
 
3707
 0: aBd
 
3708
 1: aBd
 
3709
    xy
 
3710
 0: xy
 
3711
 1: xy
 
3712
    xY
 
3713
 0: xY
 
3714
 1: xY
 
3715
    zebra
 
3716
 0: z
 
3717
 1: z
 
3718
    Zambesi
 
3719
 0: Z
 
3720
 1: Z
 
3721
    *** Failers
 
3722
No match
 
3723
    aCD  
 
3724
No match
 
3725
    XY  
 
3726
No match
 
3727
 
 
3728
/(?<=foo\n)^bar/m
 
3729
    foo\nbar
 
3730
 0: bar
 
3731
    *** Failers
 
3732
No match
 
3733
    bar
 
3734
No match
 
3735
    baz\nbar   
 
3736
No match
 
3737
 
 
3738
/(?<=(?<!foo)bar)baz/
 
3739
    barbaz
 
3740
 0: baz
 
3741
    barbarbaz 
 
3742
 0: baz
 
3743
    koobarbaz 
 
3744
 0: baz
 
3745
    *** Failers
 
3746
No match
 
3747
    baz
 
3748
No match
 
3749
    foobarbaz 
 
3750
No match
 
3751
 
 
3752
/The case of aaaaaa is missed out below because I think Perl 5.005_02 gets/
 
3753
/it wrong; it sets $1 to aaa rather than aa. Compare the following test,/
 
3754
No match
 
3755
/where it does set $1 to aa when matching aaaaaa./
 
3756
No match
 
3757
 
 
3758
/^(a\1?){4}$/
 
3759
    a
 
3760
No match
 
3761
    aa
 
3762
No match
 
3763
    aaa
 
3764
No match
 
3765
    aaaa
 
3766
 0: aaaa
 
3767
 1: a
 
3768
    aaaaa
 
3769
 0: aaaaa
 
3770
 1: a
 
3771
    aaaaaaa
 
3772
 0: aaaaaaa
 
3773
 1: a
 
3774
    aaaaaaaa
 
3775
No match
 
3776
    aaaaaaaaa
 
3777
No match
 
3778
    aaaaaaaaaa
 
3779
 0: aaaaaaaaaa
 
3780
 1: aaaa
 
3781
    aaaaaaaaaaa
 
3782
No match
 
3783
    aaaaaaaaaaaa
 
3784
No match
 
3785
    aaaaaaaaaaaaa
 
3786
No match
 
3787
    aaaaaaaaaaaaaa
 
3788
No match
 
3789
    aaaaaaaaaaaaaaa
 
3790
No match
 
3791
    aaaaaaaaaaaaaaaa               
 
3792
No match
 
3793
 
 
3794
/^(a\1?)(a\1?)(a\2?)(a\3?)$/
 
3795
    a
 
3796
No match
 
3797
    aa
 
3798
No match
 
3799
    aaa
 
3800
No match
 
3801
    aaaa
 
3802
 0: aaaa
 
3803
 1: a
 
3804
 2: a
 
3805
 3: a
 
3806
 4: a
 
3807
    aaaaa
 
3808
 0: aaaaa
 
3809
 1: a
 
3810
 2: aa
 
3811
 3: a
 
3812
 4: a
 
3813
    aaaaaa
 
3814
 0: aaaaaa
 
3815
 1: a
 
3816
 2: aa
 
3817
 3: a
 
3818
 4: aa
 
3819
    aaaaaaa
 
3820
 0: aaaaaaa
 
3821
 1: a
 
3822
 2: aa
 
3823
 3: aaa
 
3824
 4: a
 
3825
    aaaaaaaa
 
3826
No match
 
3827
    aaaaaaaaa
 
3828
No match
 
3829
    aaaaaaaaaa
 
3830
 0: aaaaaaaaaa
 
3831
 1: a
 
3832
 2: aa
 
3833
 3: aaa
 
3834
 4: aaaa
 
3835
    aaaaaaaaaaa
 
3836
No match
 
3837
    aaaaaaaaaaaa
 
3838
No match
 
3839
    aaaaaaaaaaaaa
 
3840
No match
 
3841
    aaaaaaaaaaaaaa
 
3842
No match
 
3843
    aaaaaaaaaaaaaaa
 
3844
No match
 
3845
    aaaaaaaaaaaaaaaa               
 
3846
No match
 
3847
 
 
3848
/The following tests are taken from the Perl 5.005 test suite; some of them/
 
3849
/are compatible with 5.004, but I'd rather not have to sort them out./
 
3850
No match
 
3851
 
 
3852
/abc/
 
3853
    abc
 
3854
 0: abc
 
3855
    xabcy
 
3856
 0: abc
 
3857
    ababc
 
3858
 0: abc
 
3859
    *** Failers
 
3860
No match
 
3861
    xbc
 
3862
No match
 
3863
    axc
 
3864
No match
 
3865
    abx
 
3866
No match
 
3867
 
 
3868
/ab*c/
 
3869
    abc
 
3870
 0: abc
 
3871
 
 
3872
/ab*bc/
 
3873
    abc
 
3874
 0: abc
 
3875
    abbc
 
3876
 0: abbc
 
3877
    abbbbc
 
3878
 0: abbbbc
 
3879
 
 
3880
/.{1}/
 
3881
    abbbbc
 
3882
 0: a
 
3883
 
 
3884
/.{3,4}/
 
3885
    abbbbc
 
3886
 0: abbb
 
3887
 
 
3888
/ab{0,}bc/
 
3889
    abbbbc
 
3890
 0: abbbbc
 
3891
 
 
3892
/ab+bc/
 
3893
    abbc
 
3894
 0: abbc
 
3895
    *** Failers
 
3896
No match
 
3897
    abc
 
3898
No match
 
3899
    abq
 
3900
No match
 
3901
 
 
3902
/ab{1,}bc/
 
3903
 
 
3904
/ab+bc/
 
3905
    abbbbc
 
3906
 0: abbbbc
 
3907
 
 
3908
/ab{1,}bc/
 
3909
    abbbbc
 
3910
 0: abbbbc
 
3911
 
 
3912
/ab{1,3}bc/
 
3913
    abbbbc
 
3914
 0: abbbbc
 
3915
 
 
3916
/ab{3,4}bc/
 
3917
    abbbbc
 
3918
 0: abbbbc
 
3919
 
 
3920
/ab{4,5}bc/
 
3921
    *** Failers
 
3922
No match
 
3923
    abq
 
3924
No match
 
3925
    abbbbc
 
3926
No match
 
3927
 
 
3928
/ab?bc/
 
3929
    abbc
 
3930
 0: abbc
 
3931
    abc
 
3932
 0: abc
 
3933
 
 
3934
/ab{0,1}bc/
 
3935
    abc
 
3936
 0: abc
 
3937
 
 
3938
/ab?bc/
 
3939
 
 
3940
/ab?c/
 
3941
    abc
 
3942
 0: abc
 
3943
 
 
3944
/ab{0,1}c/
 
3945
    abc
 
3946
 0: abc
 
3947
 
 
3948
/^abc$/
 
3949
    abc
 
3950
 0: abc
 
3951
    *** Failers
 
3952
No match
 
3953
    abbbbc
 
3954
No match
 
3955
    abcc
 
3956
No match
 
3957
 
 
3958
/^abc/
 
3959
    abcc
 
3960
 0: abc
 
3961
 
 
3962
/^abc$/
 
3963
 
 
3964
/abc$/
 
3965
    aabc
 
3966
 0: abc
 
3967
    *** Failers
 
3968
No match
 
3969
    aabc
 
3970
 0: abc
 
3971
    aabcd
 
3972
No match
 
3973
 
 
3974
/^/
 
3975
    abc
 
3976
 0: 
 
3977
 
 
3978
/$/
 
3979
    abc
 
3980
 0: 
 
3981
 
 
3982
/a.c/
 
3983
    abc
 
3984
 0: abc
 
3985
    axc
 
3986
 0: axc
 
3987
 
 
3988
/a.*c/
 
3989
    axyzc
 
3990
 0: axyzc
 
3991
 
 
3992
/a[bc]d/
 
3993
    abd
 
3994
 0: abd
 
3995
    *** Failers
 
3996
No match
 
3997
    axyzd
 
3998
No match
 
3999
    abc
 
4000
No match
 
4001
 
 
4002
/a[b-d]e/
 
4003
    ace
 
4004
 0: ace
 
4005
 
 
4006
/a[b-d]/
 
4007
    aac
 
4008
 0: ac
 
4009
 
 
4010
/a[-b]/
 
4011
    a-
 
4012
 0: a-
 
4013
 
 
4014
/a[b-]/
 
4015
    a-
 
4016
 0: a-
 
4017
 
 
4018
/a]/
 
4019
    a]
 
4020
 0: a]
 
4021
 
 
4022
/a[]]b/
 
4023
    a]b
 
4024
 0: a]b
 
4025
 
 
4026
/a[^bc]d/
 
4027
    aed
 
4028
 0: aed
 
4029
    *** Failers
 
4030
No match
 
4031
    abd
 
4032
No match
 
4033
    abd
 
4034
No match
 
4035
 
 
4036
/a[^-b]c/
 
4037
    adc
 
4038
 0: adc
 
4039
 
 
4040
/a[^]b]c/
 
4041
    adc
 
4042
 0: adc
 
4043
    *** Failers
 
4044
No match
 
4045
    a-c
 
4046
 0: a-c
 
4047
    a]c
 
4048
No match
 
4049
 
 
4050
/\ba\b/
 
4051
    a-
 
4052
 0: a
 
4053
    -a
 
4054
 0: a
 
4055
    -a-
 
4056
 0: a
 
4057
 
 
4058
/\by\b/
 
4059
    *** Failers
 
4060
No match
 
4061
    xy
 
4062
No match
 
4063
    yz
 
4064
No match
 
4065
    xyz
 
4066
No match
 
4067
 
 
4068
/\Ba\B/
 
4069
    *** Failers
 
4070
 0: a
 
4071
    a-
 
4072
No match
 
4073
    -a
 
4074
No match
 
4075
    -a-
 
4076
No match
 
4077
 
 
4078
/\By\b/
 
4079
    xy
 
4080
 0: y
 
4081
 
 
4082
/\by\B/
 
4083
    yz
 
4084
 0: y
 
4085
 
 
4086
/\By\B/
 
4087
    xyz
 
4088
 0: y
 
4089
 
 
4090
/\w/
 
4091
    a
 
4092
 0: a
 
4093
 
 
4094
/\W/
 
4095
    -
 
4096
 0: -
 
4097
    *** Failers
 
4098
 0: *
 
4099
    -
 
4100
 0: -
 
4101
    a
 
4102
No match
 
4103
 
 
4104
/a\sb/
 
4105
    a b
 
4106
 0: a b
 
4107
 
 
4108
/a\Sb/
 
4109
    a-b
 
4110
 0: a-b
 
4111
    *** Failers
 
4112
No match
 
4113
    a-b
 
4114
 0: a-b
 
4115
    a b
 
4116
No match
 
4117
 
 
4118
/\d/
 
4119
    1
 
4120
 0: 1
 
4121
 
 
4122
/\D/
 
4123
    -
 
4124
 0: -
 
4125
    *** Failers
 
4126
 0: *
 
4127
    -
 
4128
 0: -
 
4129
    1
 
4130
No match
 
4131
 
 
4132
/[\w]/
 
4133
    a
 
4134
 0: a
 
4135
 
 
4136
/[\W]/
 
4137
    -
 
4138
 0: -
 
4139
    *** Failers
 
4140
 0: *
 
4141
    -
 
4142
 0: -
 
4143
    a
 
4144
No match
 
4145
 
 
4146
/a[\s]b/
 
4147
    a b
 
4148
 0: a b
 
4149
 
 
4150
/a[\S]b/
 
4151
    a-b
 
4152
 0: a-b
 
4153
    *** Failers
 
4154
No match
 
4155
    a-b
 
4156
 0: a-b
 
4157
    a b
 
4158
No match
 
4159
 
 
4160
/[\d]/
 
4161
    1
 
4162
 0: 1
 
4163
 
 
4164
/[\D]/
 
4165
    -
 
4166
 0: -
 
4167
    *** Failers
 
4168
 0: *
 
4169
    -
 
4170
 0: -
 
4171
    1
 
4172
No match
 
4173
 
 
4174
/ab|cd/
 
4175
    abc
 
4176
 0: ab
 
4177
    abcd
 
4178
 0: ab
 
4179
 
 
4180
/()ef/
 
4181
    def
 
4182
 0: ef
 
4183
 1: 
 
4184
 
 
4185
/$b/
 
4186
 
 
4187
/a\(b/
 
4188
    a(b
 
4189
 0: a(b
 
4190
 
 
4191
/a\(*b/
 
4192
    ab
 
4193
 0: ab
 
4194
    a((b
 
4195
 0: a((b
 
4196
 
 
4197
/a\\b/
 
4198
    a\b
 
4199
No match
 
4200
 
 
4201
/((a))/
 
4202
    abc
 
4203
 0: a
 
4204
 1: a
 
4205
 2: a
 
4206
 
 
4207
/(a)b(c)/
 
4208
    abc
 
4209
 0: abc
 
4210
 1: a
 
4211
 2: c
 
4212
 
 
4213
/a+b+c/
 
4214
    aabbabc
 
4215
 0: abc
 
4216
 
 
4217
/a{1,}b{1,}c/
 
4218
    aabbabc
 
4219
 0: abc
 
4220
 
 
4221
/a.+?c/
 
4222
    abcabc
 
4223
 0: abc
 
4224
 
 
4225
/(a+|b)*/
 
4226
    ab
 
4227
 0: ab
 
4228
 1: b
 
4229
 
 
4230
/(a+|b){0,}/
 
4231
    ab
 
4232
 0: ab
 
4233
 1: b
 
4234
 
 
4235
/(a+|b)+/
 
4236
    ab
 
4237
 0: ab
 
4238
 1: b
 
4239
 
 
4240
/(a+|b){1,}/
 
4241
    ab
 
4242
 0: ab
 
4243
 1: b
 
4244
 
 
4245
/(a+|b)?/
 
4246
    ab
 
4247
 0: a
 
4248
 1: a
 
4249
 
 
4250
/(a+|b){0,1}/
 
4251
    ab
 
4252
 0: a
 
4253
 1: a
 
4254
 
 
4255
/[^ab]*/
 
4256
    cde
 
4257
 0: cde
 
4258
 
 
4259
/abc/
 
4260
    *** Failers
 
4261
No match
 
4262
    b
 
4263
No match
 
4264
    
 
4265
 
 
4266
/a*/
 
4267
    
 
4268
 
 
4269
/([abc])*d/
 
4270
    abbbcd
 
4271
 0: abbbcd
 
4272
 1: c
 
4273
 
 
4274
/([abc])*bcd/
 
4275
    abcd
 
4276
 0: abcd
 
4277
 1: a
 
4278
 
 
4279
/a|b|c|d|e/
 
4280
    e
 
4281
 0: e
 
4282
 
 
4283
/(a|b|c|d|e)f/
 
4284
    ef
 
4285
 0: ef
 
4286
 1: e
 
4287
 
 
4288
/abcd*efg/
 
4289
    abcdefg
 
4290
 0: abcdefg
 
4291
 
 
4292
/ab*/
 
4293
    xabyabbbz
 
4294
 0: ab
 
4295
    xayabbbz
 
4296
 0: a
 
4297
 
 
4298
/(ab|cd)e/
 
4299
    abcde
 
4300
 0: cde
 
4301
 1: cd
 
4302
 
 
4303
/[abhgefdc]ij/
 
4304
    hij
 
4305
 0: hij
 
4306
 
 
4307
/^(ab|cd)e/
 
4308
 
 
4309
/(abc|)ef/
 
4310
    abcdef
 
4311
 0: ef
 
4312
 1: 
 
4313
 
 
4314
/(a|b)c*d/
 
4315
    abcd
 
4316
 0: bcd
 
4317
 1: b
 
4318
 
 
4319
/(ab|ab*)bc/
 
4320
    abc
 
4321
 0: abc
 
4322
 1: a
 
4323
 
 
4324
/a([bc]*)c*/
 
4325
    abc
 
4326
 0: abc
 
4327
 1: bc
 
4328
 
 
4329
/a([bc]*)(c*d)/
 
4330
    abcd
 
4331
 0: abcd
 
4332
 1: bc
 
4333
 2: d
 
4334
 
 
4335
/a([bc]+)(c*d)/
 
4336
    abcd
 
4337
 0: abcd
 
4338
 1: bc
 
4339
 2: d
 
4340
 
 
4341
/a([bc]*)(c+d)/
 
4342
    abcd
 
4343
 0: abcd
 
4344
 1: b
 
4345
 2: cd
 
4346
 
 
4347
/a[bcd]*dcdcde/
 
4348
    adcdcde
 
4349
 0: adcdcde
 
4350
 
 
4351
/a[bcd]+dcdcde/
 
4352
    *** Failers
 
4353
No match
 
4354
    abcde
 
4355
No match
 
4356
    adcdcde
 
4357
No match
 
4358
 
 
4359
/(ab|a)b*c/
 
4360
    abc
 
4361
 0: abc
 
4362
 1: ab
 
4363
 
 
4364
/((a)(b)c)(d)/
 
4365
    abcd
 
4366
 0: abcd
 
4367
 1: abc
 
4368
 2: a
 
4369
 3: b
 
4370
 4: d
 
4371
 
 
4372
/[a-zA-Z_][a-zA-Z0-9_]*/
 
4373
    alpha
 
4374
 0: alpha
 
4375
 
 
4376
/^a(bc+|b[eh])g|.h$/
 
4377
    abh
 
4378
 0: bh
 
4379
 
 
4380
/(bc+d$|ef*g.|h?i(j|k))/
 
4381
    effgz
 
4382
 0: effgz
 
4383
 1: effgz
 
4384
    ij
 
4385
 0: ij
 
4386
 1: ij
 
4387
 2: j
 
4388
    reffgz
 
4389
 0: effgz
 
4390
 1: effgz
 
4391
    *** Failers
 
4392
No match
 
4393
    effg
 
4394
No match
 
4395
    bcdd
 
4396
No match
 
4397
 
 
4398
/((((((((((a))))))))))/
 
4399
    a
 
4400
 0: a
 
4401
 1: a
 
4402
 2: a
 
4403
 3: a
 
4404
 4: a
 
4405
 5: a
 
4406
 6: a
 
4407
 7: a
 
4408
 8: a
 
4409
 9: a
 
4410
10: a
 
4411
 
 
4412
/((((((((((a))))))))))\10/
 
4413
    aa
 
4414
 0: aa
 
4415
 1: a
 
4416
 2: a
 
4417
 3: a
 
4418
 4: a
 
4419
 5: a
 
4420
 6: a
 
4421
 7: a
 
4422
 8: a
 
4423
 9: a
 
4424
10: a
 
4425
 
 
4426
/(((((((((a)))))))))/
 
4427
    a
 
4428
 0: a
 
4429
 1: a
 
4430
 2: a
 
4431
 3: a
 
4432
 4: a
 
4433
 5: a
 
4434
 6: a
 
4435
 7: a
 
4436
 8: a
 
4437
 9: a
 
4438
 
 
4439
/multiple words of text/
 
4440
    *** Failers
 
4441
No match
 
4442
    aa
 
4443
No match
 
4444
    uh-uh
 
4445
No match
 
4446
 
 
4447
/multiple words/
 
4448
    multiple words, yeah
 
4449
 0: multiple words
 
4450
 
 
4451
/(.*)c(.*)/
 
4452
    abcde
 
4453
 0: abcde
 
4454
 1: ab
 
4455
 2: de
 
4456
 
 
4457
/\((.*), (.*)\)/
 
4458
    (a, b)
 
4459
 0: (a, b)
 
4460
 1: a
 
4461
 2: b
 
4462
 
 
4463
/[k]/
 
4464
 
 
4465
/abcd/
 
4466
    abcd
 
4467
 0: abcd
 
4468
 
 
4469
/a(bc)d/
 
4470
    abcd
 
4471
 0: abcd
 
4472
 1: bc
 
4473
 
 
4474
/a[-]?c/
 
4475
    ac
 
4476
 0: ac
 
4477
 
 
4478
/(abc)\1/
 
4479
    abcabc
 
4480
 0: abcabc
 
4481
 1: abc
 
4482
 
 
4483
/([a-c]*)\1/
 
4484
    abcabc
 
4485
 0: abcabc
 
4486
 1: abc
 
4487
 
 
4488
/(a)|\1/
 
4489
    a
 
4490
 0: a
 
4491
 1: a
 
4492
    *** Failers
 
4493
 0: a
 
4494
 1: a
 
4495
    ab
 
4496
 0: a
 
4497
 1: a
 
4498
    x
 
4499
No match
 
4500
 
 
4501
/(([a-c])b*?\2)*/
 
4502
    ababbbcbc
 
4503
 0: ababb
 
4504
 1: bb
 
4505
 2: b
 
4506
 
 
4507
/(([a-c])b*?\2){3}/
 
4508
    ababbbcbc
 
4509
 0: ababbbcbc
 
4510
 1: cbc
 
4511
 2: c
 
4512
 
 
4513
/((\3|b)\2(a)x)+/
 
4514
    aaaxabaxbaaxbbax
 
4515
 0: bbax
 
4516
 1: bbax
 
4517
 2: b
 
4518
 3: a
 
4519
 
 
4520
/((\3|b)\2(a)){2,}/
 
4521
    bbaababbabaaaaabbaaaabba
 
4522
 0: bbaaaabba
 
4523
 1: bba
 
4524
 2: b
 
4525
 3: a
 
4526
 
 
4527
/abc/i
 
4528
    ABC
 
4529
 0: ABC
 
4530
    XABCY
 
4531
 0: ABC
 
4532
    ABABC
 
4533
 0: ABC
 
4534
    *** Failers
 
4535
No match
 
4536
    aaxabxbaxbbx
 
4537
No match
 
4538
    XBC
 
4539
No match
 
4540
    AXC
 
4541
No match
 
4542
    ABX
 
4543
No match
 
4544
 
 
4545
/ab*c/i
 
4546
    ABC
 
4547
 0: ABC
 
4548
 
 
4549
/ab*bc/i
 
4550
    ABC
 
4551
 0: ABC
 
4552
    ABBC
 
4553
 0: ABBC
 
4554
 
 
4555
/ab*?bc/i
 
4556
    ABBBBC
 
4557
 0: ABBBBC
 
4558
 
 
4559
/ab{0,}?bc/i
 
4560
    ABBBBC
 
4561
 0: ABBBBC
 
4562
 
 
4563
/ab+?bc/i
 
4564
    ABBC
 
4565
 0: ABBC
 
4566
 
 
4567
/ab+bc/i
 
4568
    *** Failers
 
4569
No match
 
4570
    ABC
 
4571
No match
 
4572
    ABQ
 
4573
No match
 
4574
 
 
4575
/ab{1,}bc/i
 
4576
 
 
4577
/ab+bc/i
 
4578
    ABBBBC
 
4579
 0: ABBBBC
 
4580
 
 
4581
/ab{1,}?bc/i
 
4582
    ABBBBC
 
4583
 0: ABBBBC
 
4584
 
 
4585
/ab{1,3}?bc/i
 
4586
    ABBBBC
 
4587
 0: ABBBBC
 
4588
 
 
4589
/ab{3,4}?bc/i
 
4590
    ABBBBC
 
4591
 0: ABBBBC
 
4592
 
 
4593
/ab{4,5}?bc/i
 
4594
    *** Failers
 
4595
No match
 
4596
    ABQ
 
4597
No match
 
4598
    ABBBBC
 
4599
No match
 
4600
 
 
4601
/ab??bc/i
 
4602
    ABBC
 
4603
 0: ABBC
 
4604
    ABC
 
4605
 0: ABC
 
4606
 
 
4607
/ab{0,1}?bc/i
 
4608
    ABC
 
4609
 0: ABC
 
4610
 
 
4611
/ab??bc/i
 
4612
 
 
4613
/ab??c/i
 
4614
    ABC
 
4615
 0: ABC
 
4616
 
 
4617
/ab{0,1}?c/i
 
4618
    ABC
 
4619
 0: ABC
 
4620
 
 
4621
/^abc$/i
 
4622
    ABC
 
4623
 0: ABC
 
4624
    *** Failers
 
4625
No match
 
4626
    ABBBBC
 
4627
No match
 
4628
    ABCC
 
4629
No match
 
4630
 
 
4631
/^abc/i
 
4632
    ABCC
 
4633
 0: ABC
 
4634
 
 
4635
/^abc$/i
 
4636
 
 
4637
/abc$/i
 
4638
    AABC
 
4639
 0: ABC
 
4640
 
 
4641
/^/i
 
4642
    ABC
 
4643
 0: 
 
4644
 
 
4645
/$/i
 
4646
    ABC
 
4647
 0: 
 
4648
 
 
4649
/a.c/i
 
4650
    ABC
 
4651
 0: ABC
 
4652
    AXC
 
4653
 0: AXC
 
4654
 
 
4655
/a.*?c/i
 
4656
    AXYZC
 
4657
 0: AXYZC
 
4658
 
 
4659
/a.*c/i
 
4660
    *** Failers
 
4661
No match
 
4662
    AABC
 
4663
 0: AABC
 
4664
    AXYZD
 
4665
No match
 
4666
 
 
4667
/a[bc]d/i
 
4668
    ABD
 
4669
 0: ABD
 
4670
 
 
4671
/a[b-d]e/i
 
4672
    ACE
 
4673
 0: ACE
 
4674
    *** Failers
 
4675
No match
 
4676
    ABC
 
4677
No match
 
4678
    ABD
 
4679
No match
 
4680
 
 
4681
/a[b-d]/i
 
4682
    AAC
 
4683
 0: AC
 
4684
 
 
4685
/a[-b]/i
 
4686
    A-
 
4687
 0: A-
 
4688
 
 
4689
/a[b-]/i
 
4690
    A-
 
4691
 0: A-
 
4692
 
 
4693
/a]/i
 
4694
    A]
 
4695
 0: A]
 
4696
 
 
4697
/a[]]b/i
 
4698
    A]B
 
4699
 0: A]B
 
4700
 
 
4701
/a[^bc]d/i
 
4702
    AED
 
4703
 0: AED
 
4704
 
 
4705
/a[^-b]c/i
 
4706
    ADC
 
4707
 0: ADC
 
4708
    *** Failers
 
4709
No match
 
4710
    ABD
 
4711
No match
 
4712
    A-C
 
4713
No match
 
4714
 
 
4715
/a[^]b]c/i
 
4716
    ADC
 
4717
 0: ADC
 
4718
 
 
4719
/ab|cd/i
 
4720
    ABC
 
4721
 0: AB
 
4722
    ABCD
 
4723
 0: AB
 
4724
 
 
4725
/()ef/i
 
4726
    DEF
 
4727
 0: EF
 
4728
 1: 
 
4729
 
 
4730
/$b/i
 
4731
    *** Failers
 
4732
No match
 
4733
    A]C
 
4734
No match
 
4735
    B
 
4736
No match
 
4737
 
 
4738
/a\(b/i
 
4739
    A(B
 
4740
 0: A(B
 
4741
 
 
4742
/a\(*b/i
 
4743
    AB
 
4744
 0: AB
 
4745
    A((B
 
4746
 0: A((B
 
4747
 
 
4748
/a\\b/i
 
4749
    A\B
 
4750
No match
 
4751
 
 
4752
/((a))/i
 
4753
    ABC
 
4754
 0: A
 
4755
 1: A
 
4756
 2: A
 
4757
 
 
4758
/(a)b(c)/i
 
4759
    ABC
 
4760
 0: ABC
 
4761
 1: A
 
4762
 2: C
 
4763
 
 
4764
/a+b+c/i
 
4765
    AABBABC
 
4766
 0: ABC
 
4767
 
 
4768
/a{1,}b{1,}c/i
 
4769
    AABBABC
 
4770
 0: ABC
 
4771
 
 
4772
/a.+?c/i
 
4773
    ABCABC
 
4774
 0: ABC
 
4775
 
 
4776
/a.*?c/i
 
4777
    ABCABC
 
4778
 0: ABC
 
4779
 
 
4780
/a.{0,5}?c/i
 
4781
    ABCABC
 
4782
 0: ABC
 
4783
 
 
4784
/(a+|b)*/i
 
4785
    AB
 
4786
 0: AB
 
4787
 1: B
 
4788
 
 
4789
/(a+|b){0,}/i
 
4790
    AB
 
4791
 0: AB
 
4792
 1: B
 
4793
 
 
4794
/(a+|b)+/i
 
4795
    AB
 
4796
 0: AB
 
4797
 1: B
 
4798
 
 
4799
/(a+|b){1,}/i
 
4800
    AB
 
4801
 0: AB
 
4802
 1: B
 
4803
 
 
4804
/(a+|b)?/i
 
4805
    AB
 
4806
 0: A
 
4807
 1: A
 
4808
 
 
4809
/(a+|b){0,1}/i
 
4810
    AB
 
4811
 0: A
 
4812
 1: A
 
4813
 
 
4814
/(a+|b){0,1}?/i
 
4815
    AB
 
4816
 0: 
 
4817
 
 
4818
/[^ab]*/i
 
4819
    CDE
 
4820
 0: CDE
 
4821
 
 
4822
/abc/i
 
4823
 
 
4824
/a*/i
 
4825
    
 
4826
 
 
4827
/([abc])*d/i
 
4828
    ABBBCD
 
4829
 0: ABBBCD
 
4830
 1: C
 
4831
 
 
4832
/([abc])*bcd/i
 
4833
    ABCD
 
4834
 0: ABCD
 
4835
 1: A
 
4836
 
 
4837
/a|b|c|d|e/i
 
4838
    E
 
4839
 0: E
 
4840
 
 
4841
/(a|b|c|d|e)f/i
 
4842
    EF
 
4843
 0: EF
 
4844
 1: E
 
4845
 
 
4846
/abcd*efg/i
 
4847
    ABCDEFG
 
4848
 0: ABCDEFG
 
4849
 
 
4850
/ab*/i
 
4851
    XABYABBBZ
 
4852
 0: AB
 
4853
    XAYABBBZ
 
4854
 0: A
 
4855
 
 
4856
/(ab|cd)e/i
 
4857
    ABCDE
 
4858
 0: CDE
 
4859
 1: CD
 
4860
 
 
4861
/[abhgefdc]ij/i
 
4862
    HIJ
 
4863
 0: HIJ
 
4864
 
 
4865
/^(ab|cd)e/i
 
4866
    ABCDE
 
4867
No match
 
4868
 
 
4869
/(abc|)ef/i
 
4870
    ABCDEF
 
4871
 0: EF
 
4872
 1: 
 
4873
 
 
4874
/(a|b)c*d/i
 
4875
    ABCD
 
4876
 0: BCD
 
4877
 1: B
 
4878
 
 
4879
/(ab|ab*)bc/i
 
4880
    ABC
 
4881
 0: ABC
 
4882
 1: A
 
4883
 
 
4884
/a([bc]*)c*/i
 
4885
    ABC
 
4886
 0: ABC
 
4887
 1: BC
 
4888
 
 
4889
/a([bc]*)(c*d)/i
 
4890
    ABCD
 
4891
 0: ABCD
 
4892
 1: BC
 
4893
 2: D
 
4894
 
 
4895
/a([bc]+)(c*d)/i
 
4896
    ABCD
 
4897
 0: ABCD
 
4898
 1: BC
 
4899
 2: D
 
4900
 
 
4901
/a([bc]*)(c+d)/i
 
4902
    ABCD
 
4903
 0: ABCD
 
4904
 1: B
 
4905
 2: CD
 
4906
 
 
4907
/a[bcd]*dcdcde/i
 
4908
    ADCDCDE
 
4909
 0: ADCDCDE
 
4910
 
 
4911
/a[bcd]+dcdcde/i
 
4912
 
 
4913
/(ab|a)b*c/i
 
4914
    ABC
 
4915
 0: ABC
 
4916
 1: AB
 
4917
 
 
4918
/((a)(b)c)(d)/i
 
4919
    ABCD
 
4920
 0: ABCD
 
4921
 1: ABC
 
4922
 2: A
 
4923
 3: B
 
4924
 4: D
 
4925
 
 
4926
/[a-zA-Z_][a-zA-Z0-9_]*/i
 
4927
    ALPHA
 
4928
 0: ALPHA
 
4929
 
 
4930
/^a(bc+|b[eh])g|.h$/i
 
4931
    ABH
 
4932
 0: BH
 
4933
 
 
4934
/(bc+d$|ef*g.|h?i(j|k))/i
 
4935
    EFFGZ
 
4936
 0: EFFGZ
 
4937
 1: EFFGZ
 
4938
    IJ
 
4939
 0: IJ
 
4940
 1: IJ
 
4941
 2: J
 
4942
    REFFGZ
 
4943
 0: EFFGZ
 
4944
 1: EFFGZ
 
4945
    *** Failers
 
4946
No match
 
4947
    ADCDCDE
 
4948
No match
 
4949
    EFFG
 
4950
No match
 
4951
    BCDD
 
4952
No match
 
4953
 
 
4954
/((((((((((a))))))))))/i
 
4955
    A
 
4956
 0: A
 
4957
 1: A
 
4958
 2: A
 
4959
 3: A
 
4960
 4: A
 
4961
 5: A
 
4962
 6: A
 
4963
 7: A
 
4964
 8: A
 
4965
 9: A
 
4966
10: A
 
4967
 
 
4968
/((((((((((a))))))))))\10/i
 
4969
    AA
 
4970
 0: AA
 
4971
 1: A
 
4972
 2: A
 
4973
 3: A
 
4974
 4: A
 
4975
 5: A
 
4976
 6: A
 
4977
 7: A
 
4978
 8: A
 
4979
 9: A
 
4980
10: A
 
4981
 
 
4982
/(((((((((a)))))))))/i
 
4983
    A
 
4984
 0: A
 
4985
 1: A
 
4986
 2: A
 
4987
 3: A
 
4988
 4: A
 
4989
 5: A
 
4990
 6: A
 
4991
 7: A
 
4992
 8: A
 
4993
 9: A
 
4994
 
 
4995
/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
 
4996
    A
 
4997
 0: A
 
4998
 1: A
 
4999
 
 
5000
/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
 
5001
    C
 
5002
 0: C
 
5003
 1: C
 
5004
 
 
5005
/multiple words of text/i
 
5006
    *** Failers
 
5007
No match
 
5008
    AA
 
5009
No match
 
5010
    UH-UH
 
5011
No match
 
5012
 
 
5013
/multiple words/i
 
5014
    MULTIPLE WORDS, YEAH
 
5015
 0: MULTIPLE WORDS
 
5016
 
 
5017
/(.*)c(.*)/i
 
5018
    ABCDE
 
5019
 0: ABCDE
 
5020
 1: AB
 
5021
 2: DE
 
5022
 
 
5023
/\((.*), (.*)\)/i
 
5024
    (A, B)
 
5025
 0: (A, B)
 
5026
 1: A
 
5027
 2: B
 
5028
 
 
5029
/[k]/i
 
5030
 
 
5031
/abcd/i
 
5032
    ABCD
 
5033
 0: ABCD
 
5034
 
 
5035
/a(bc)d/i
 
5036
    ABCD
 
5037
 0: ABCD
 
5038
 1: BC
 
5039
 
 
5040
/a[-]?c/i
 
5041
    AC
 
5042
 0: AC
 
5043
 
 
5044
/(abc)\1/i
 
5045
    ABCABC
 
5046
 0: ABCABC
 
5047
 1: ABC
 
5048
 
 
5049
/([a-c]*)\1/i
 
5050
    ABCABC
 
5051
 0: ABCABC
 
5052
 1: ABC
 
5053
 
 
5054
/a(?!b)./
 
5055
    abad
 
5056
 0: ad
 
5057
 
 
5058
/a(?=d)./
 
5059
    abad
 
5060
 0: ad
 
5061
 
 
5062
/a(?=c|d)./
 
5063
    abad
 
5064
 0: ad
 
5065
 
 
5066
/a(?:b|c|d)(.)/
 
5067
    ace
 
5068
 0: ace
 
5069
 1: e
 
5070
 
 
5071
/a(?:b|c|d)*(.)/
 
5072
    ace
 
5073
 0: ace
 
5074
 1: e
 
5075
 
 
5076
/a(?:b|c|d)+?(.)/
 
5077
    ace
 
5078
 0: ace
 
5079
 1: e
 
5080
    acdbcdbe
 
5081
 0: acd
 
5082
 1: d
 
5083
 
 
5084
/a(?:b|c|d)+(.)/
 
5085
    acdbcdbe
 
5086
 0: acdbcdbe
 
5087
 1: e
 
5088
 
 
5089
/a(?:b|c|d){2}(.)/
 
5090
    acdbcdbe
 
5091
 0: acdb
 
5092
 1: b
 
5093
 
 
5094
/a(?:b|c|d){4,5}(.)/
 
5095
    acdbcdbe
 
5096
 0: acdbcdb
 
5097
 1: b
 
5098
 
 
5099
/a(?:b|c|d){4,5}?(.)/
 
5100
    acdbcdbe
 
5101
 0: acdbcd
 
5102
 1: d
 
5103
 
 
5104
/((foo)|(bar))*/
 
5105
    foobar
 
5106
 0: foobar
 
5107
 1: bar
 
5108
 2: foo
 
5109
 3: bar
 
5110
 
 
5111
/a(?:b|c|d){6,7}(.)/
 
5112
    acdbcdbe
 
5113
 0: acdbcdbe
 
5114
 1: e
 
5115
 
 
5116
/a(?:b|c|d){6,7}?(.)/
 
5117
    acdbcdbe
 
5118
 0: acdbcdbe
 
5119
 1: e
 
5120
 
 
5121
/a(?:b|c|d){5,6}(.)/
 
5122
    acdbcdbe
 
5123
 0: acdbcdbe
 
5124
 1: e
 
5125
 
 
5126
/a(?:b|c|d){5,6}?(.)/
 
5127
    acdbcdbe
 
5128
 0: acdbcdb
 
5129
 1: b
 
5130
 
 
5131
/a(?:b|c|d){5,7}(.)/
 
5132
    acdbcdbe
 
5133
 0: acdbcdbe
 
5134
 1: e
 
5135
 
 
5136
/a(?:b|c|d){5,7}?(.)/
 
5137
    acdbcdbe
 
5138
 0: acdbcdb
 
5139
 1: b
 
5140
 
 
5141
/a(?:b|(c|e){1,2}?|d)+?(.)/
 
5142
    ace
 
5143
 0: ace
 
5144
 1: c
 
5145
 2: e
 
5146
 
 
5147
/^(.+)?B/
 
5148
    AB
 
5149
 0: AB
 
5150
 1: A
 
5151
 
 
5152
/^([^a-z])|(\^)$/
 
5153
    .
 
5154
 0: .
 
5155
 1: .
 
5156
 
 
5157
/^[<>]&/
 
5158
    <&OUT
 
5159
 0: <&
 
5160
 
 
5161
/^(a\1?){4}$/
 
5162
    aaaaaaaaaa
 
5163
 0: aaaaaaaaaa
 
5164
 1: aaaa
 
5165
    *** Failers
 
5166
No match
 
5167
    AB
 
5168
No match
 
5169
    aaaaaaaaa
 
5170
No match
 
5171
    aaaaaaaaaaa
 
5172
No match
 
5173
 
 
5174
/^(a(?(1)\1)){4}$/
 
5175
    aaaaaaaaaa
 
5176
 0: aaaaaaaaaa
 
5177
 1: aaaa
 
5178
    *** Failers
 
5179
No match
 
5180
    aaaaaaaaa
 
5181
No match
 
5182
    aaaaaaaaaaa
 
5183
No match
 
5184
 
 
5185
/(?:(f)(o)(o)|(b)(a)(r))*/
 
5186
    foobar
 
5187
 0: foobar
 
5188
 1: f
 
5189
 2: o
 
5190
 3: o
 
5191
 4: b
 
5192
 5: a
 
5193
 6: r
 
5194
 
 
5195
/(?<=a)b/
 
5196
    ab
 
5197
 0: b
 
5198
    *** Failers
 
5199
No match
 
5200
    cb
 
5201
No match
 
5202
    b
 
5203
No match
 
5204
 
 
5205
/(?<!c)b/
 
5206
    ab
 
5207
 0: b
 
5208
    b
 
5209
 0: b
 
5210
    b
 
5211
 0: b
 
5212
 
 
5213
/(?:..)*a/
 
5214
    aba
 
5215
 0: aba
 
5216
 
 
5217
/(?:..)*?a/
 
5218
    aba
 
5219
 0: a
 
5220
 
 
5221
/^(?:b|a(?=(.)))*\1/
 
5222
    abc
 
5223
 0: ab
 
5224
 1: b
 
5225
 
 
5226
/^(){3,5}/
 
5227
    abc
 
5228
 0: 
 
5229
 1: 
 
5230
 
 
5231
/^(a+)*ax/
 
5232
    aax
 
5233
 0: aax
 
5234
 1: a
 
5235
 
 
5236
/^((a|b)+)*ax/
 
5237
    aax
 
5238
 0: aax
 
5239
 1: a
 
5240
 2: a
 
5241
 
 
5242
/^((a|bc)+)*ax/
 
5243
    aax
 
5244
 0: aax
 
5245
 1: a
 
5246
 2: a
 
5247
 
 
5248
/(a|x)*ab/
 
5249
    cab
 
5250
 0: ab
 
5251
 
 
5252
/(a)*ab/
 
5253
    cab
 
5254
 0: ab
 
5255
 
 
5256
/(?:(?i)a)b/
 
5257
    ab
 
5258
 0: ab
 
5259
 
 
5260
/((?i)a)b/
 
5261
    ab
 
5262
 0: ab
 
5263
 1: a
 
5264
 
 
5265
/(?:(?i)a)b/
 
5266
    Ab
 
5267
 0: Ab
 
5268
 
 
5269
/((?i)a)b/
 
5270
    Ab
 
5271
 0: Ab
 
5272
 1: A
 
5273
 
 
5274
/(?:(?i)a)b/
 
5275
    *** Failers
 
5276
No match
 
5277
    cb
 
5278
No match
 
5279
    aB
 
5280
No match
 
5281
 
 
5282
/((?i)a)b/
 
5283
 
 
5284
/(?i:a)b/
 
5285
    ab
 
5286
 0: ab
 
5287
 
 
5288
/((?i:a))b/
 
5289
    ab
 
5290
 0: ab
 
5291
 1: a
 
5292
 
 
5293
/(?i:a)b/
 
5294
    Ab
 
5295
 0: Ab
 
5296
 
 
5297
/((?i:a))b/
 
5298
    Ab
 
5299
 0: Ab
 
5300
 1: A
 
5301
 
 
5302
/(?i:a)b/
 
5303
    *** Failers
 
5304
No match
 
5305
    aB
 
5306
No match
 
5307
    aB
 
5308
No match
 
5309
 
 
5310
/((?i:a))b/
 
5311
 
 
5312
/(?:(?-i)a)b/i
 
5313
    ab
 
5314
 0: ab
 
5315
 
 
5316
/((?-i)a)b/i
 
5317
    ab
 
5318
 0: ab
 
5319
 1: a
 
5320
 
 
5321
/(?:(?-i)a)b/i
 
5322
    aB
 
5323
 0: aB
 
5324
 
 
5325
/((?-i)a)b/i
 
5326
    aB
 
5327
 0: aB
 
5328
 1: a
 
5329
 
 
5330
/(?:(?-i)a)b/i
 
5331
    *** Failers
 
5332
No match
 
5333
    aB
 
5334
 0: aB
 
5335
    Ab
 
5336
No match
 
5337
 
 
5338
/((?-i)a)b/i
 
5339
 
 
5340
/(?:(?-i)a)b/i
 
5341
    aB
 
5342
 0: aB
 
5343
 
 
5344
/((?-i)a)b/i
 
5345
    aB
 
5346
 0: aB
 
5347
 1: a
 
5348
 
 
5349
/(?:(?-i)a)b/i
 
5350
    *** Failers
 
5351
No match
 
5352
    Ab
 
5353
No match
 
5354
    AB
 
5355
No match
 
5356
 
 
5357
/((?-i)a)b/i
 
5358
 
 
5359
/(?-i:a)b/i
 
5360
    ab
 
5361
 0: ab
 
5362
 
 
5363
/((?-i:a))b/i
 
5364
    ab
 
5365
 0: ab
 
5366
 1: a
 
5367
 
 
5368
/(?-i:a)b/i
 
5369
    aB
 
5370
 0: aB
 
5371
 
 
5372
/((?-i:a))b/i
 
5373
    aB
 
5374
 0: aB
 
5375
 1: a
 
5376
 
 
5377
/(?-i:a)b/i
 
5378
    *** Failers
 
5379
No match
 
5380
    AB
 
5381
No match
 
5382
    Ab
 
5383
No match
 
5384
 
 
5385
/((?-i:a))b/i
 
5386
 
 
5387
/(?-i:a)b/i
 
5388
    aB
 
5389
 0: aB
 
5390
 
 
5391
/((?-i:a))b/i
 
5392
    aB
 
5393
 0: aB
 
5394
 1: a
 
5395
 
 
5396
/(?-i:a)b/i
 
5397
    *** Failers
 
5398
No match
 
5399
    Ab
 
5400
No match
 
5401
    AB
 
5402
No match
 
5403
 
 
5404
/((?-i:a))b/i
 
5405
 
 
5406
/((?-i:a.))b/i
 
5407
    *** Failers
 
5408
No match
 
5409
    AB
 
5410
No match
 
5411
    a\nB
 
5412
No match
 
5413
 
 
5414
/((?s-i:a.))b/i
 
5415
    a\nB
 
5416
 0: a\x0aB
 
5417
 1: a\x0a
 
5418
 
 
5419
/(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
 
5420
    cabbbb
 
5421
 0: cabbbb
 
5422
 
 
5423
/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
 
5424
    caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
5425
 0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
5426
 
 
5427
/(ab)\d\1/i
 
5428
    Ab4ab
 
5429
 0: Ab4ab
 
5430
 1: Ab
 
5431
    ab4Ab
 
5432
 0: ab4Ab
 
5433
 1: ab
 
5434
 
 
5435
/foo\w*\d{4}baz/
 
5436
    foobar1234baz
 
5437
 0: foobar1234baz
 
5438
 
 
5439
/x(~~)*(?:(?:F)?)?/
 
5440
    x~~
 
5441
 0: x~~
 
5442
 1: ~~
 
5443
 
 
5444
/^a(?#xxx){3}c/
 
5445
    aaac
 
5446
 0: aaac
 
5447
 
 
5448
/^a (?#xxx) (?#yyy) {3}c/x
 
5449
    aaac
 
5450
 0: aaac
 
5451
 
 
5452
/(?<![cd])b/
 
5453
    *** Failers
 
5454
No match
 
5455
    B\nB
 
5456
No match
 
5457
    dbcb
 
5458
No match
 
5459
 
 
5460
/(?<![cd])[ab]/
 
5461
    dbaacb
 
5462
 0: a
 
5463
 
 
5464
/(?<!(c|d))b/
 
5465
 
 
5466
/(?<!(c|d))[ab]/
 
5467
    dbaacb
 
5468
 0: a
 
5469
 
 
5470
/(?<!cd)[ab]/
 
5471
    cdaccb
 
5472
 0: b
 
5473
 
 
5474
/^(?:a?b?)*$/
 
5475
    \
 
5476
 0: 
 
5477
    a
 
5478
 0: a
 
5479
    ab
 
5480
 0: ab
 
5481
    aaa   
 
5482
 0: aaa
 
5483
    *** Failers
 
5484
No match
 
5485
    dbcb
 
5486
No match
 
5487
    a--
 
5488
No match
 
5489
    aa-- 
 
5490
No match
 
5491
 
 
5492
/((?s)^a(.))((?m)^b$)/
 
5493
    a\nb\nc\n
 
5494
 0: a\x0ab
 
5495
 1: a\x0a
 
5496
 2: \x0a
 
5497
 3: b
 
5498
 
 
5499
/((?m)^b$)/
 
5500
    a\nb\nc\n
 
5501
 0: b
 
5502
 1: b
 
5503
 
 
5504
/(?m)^b/
 
5505
    a\nb\n
 
5506
 0: b
 
5507
 
 
5508
/(?m)^(b)/
 
5509
    a\nb\n
 
5510
 0: b
 
5511
 1: b
 
5512
 
 
5513
/((?m)^b)/
 
5514
    a\nb\n
 
5515
 0: b
 
5516
 1: b
 
5517
 
 
5518
/\n((?m)^b)/
 
5519
    a\nb\n
 
5520
 0: \x0ab
 
5521
 1: b
 
5522
 
 
5523
/((?s).)c(?!.)/
 
5524
    a\nb\nc\n
 
5525
 0: \x0ac
 
5526
 1: \x0a
 
5527
    a\nb\nc\n
 
5528
 0: \x0ac
 
5529
 1: \x0a
 
5530
 
 
5531
/((?s)b.)c(?!.)/
 
5532
    a\nb\nc\n
 
5533
 0: b\x0ac
 
5534
 1: b\x0a
 
5535
    a\nb\nc\n
 
5536
 0: b\x0ac
 
5537
 1: b\x0a
 
5538
 
 
5539
/^b/
 
5540
 
 
5541
/()^b/
 
5542
    *** Failers
 
5543
No match
 
5544
    a\nb\nc\n
 
5545
No match
 
5546
    a\nb\nc\n
 
5547
No match
 
5548
 
 
5549
/((?m)^b)/
 
5550
    a\nb\nc\n
 
5551
 0: b
 
5552
 1: b
 
5553
 
 
5554
/(x)?(?(1)a|b)/
 
5555
    *** Failers
 
5556
No match
 
5557
    a
 
5558
No match
 
5559
    a
 
5560
No match
 
5561
 
 
5562
/(x)?(?(1)b|a)/
 
5563
    a
 
5564
 0: a
 
5565
 
 
5566
/()?(?(1)b|a)/
 
5567
    a
 
5568
 0: a
 
5569
 
 
5570
/()(?(1)b|a)/
 
5571
 
 
5572
/()?(?(1)a|b)/
 
5573
    a
 
5574
 0: a
 
5575
 1: 
 
5576
 
 
5577
/^(\()?blah(?(1)(\)))$/
 
5578
    (blah)
 
5579
 0: (blah)
 
5580
 1: (
 
5581
 2: )
 
5582
    blah
 
5583
 0: blah
 
5584
    *** Failers
 
5585
No match
 
5586
    a
 
5587
No match
 
5588
    blah)
 
5589
No match
 
5590
    (blah
 
5591
No match
 
5592
 
 
5593
/^(\(+)?blah(?(1)(\)))$/
 
5594
    (blah)
 
5595
 0: (blah)
 
5596
 1: (
 
5597
 2: )
 
5598
    blah
 
5599
 0: blah
 
5600
    *** Failers
 
5601
No match
 
5602
    blah)
 
5603
No match
 
5604
    (blah
 
5605
No match
 
5606
 
 
5607
/(?(?!a)a|b)/
 
5608
 
 
5609
/(?(?!a)b|a)/
 
5610
    a
 
5611
 0: a
 
5612
 
 
5613
/(?(?=a)b|a)/
 
5614
    *** Failers
 
5615
No match
 
5616
    a
 
5617
No match
 
5618
    a
 
5619
No match
 
5620
 
 
5621
/(?(?=a)a|b)/
 
5622
    a
 
5623
 0: a
 
5624
 
 
5625
/(?=(a+?))(\1ab)/
 
5626
    aaab
 
5627
 0: aab
 
5628
 1: a
 
5629
 2: aab
 
5630
 
 
5631
/^(?=(a+?))\1ab/
 
5632
 
 
5633
/(\w+:)+/
 
5634
    one:
 
5635
 0: one:
 
5636
 1: one:
 
5637
 
 
5638
/$(?<=^(a))/
 
5639
    a
 
5640
 0: 
 
5641
 1: a
 
5642
 
 
5643
/(?=(a+?))(\1ab)/
 
5644
    aaab
 
5645
 0: aab
 
5646
 1: a
 
5647
 2: aab
 
5648
 
 
5649
/^(?=(a+?))\1ab/
 
5650
    *** Failers
 
5651
No match
 
5652
    aaab
 
5653
No match
 
5654
    aaab
 
5655
No match
 
5656
 
 
5657
/([\w:]+::)?(\w+)$/
 
5658
    abcd
 
5659
 0: abcd
 
5660
 1: <unset>
 
5661
 2: abcd
 
5662
    xy:z:::abcd
 
5663
 0: xy:z:::abcd
 
5664
 1: xy:z:::
 
5665
 2: abcd
 
5666
 
 
5667
/^[^bcd]*(c+)/
 
5668
    aexycd
 
5669
 0: aexyc
 
5670
 1: c
 
5671
 
 
5672
/(a*)b+/
 
5673
    caab
 
5674
 0: aab
 
5675
 1: aa
 
5676
 
 
5677
/([\w:]+::)?(\w+)$/
 
5678
    abcd
 
5679
 0: abcd
 
5680
 1: <unset>
 
5681
 2: abcd
 
5682
    xy:z:::abcd
 
5683
 0: xy:z:::abcd
 
5684
 1: xy:z:::
 
5685
 2: abcd
 
5686
    *** Failers
 
5687
 0: Failers
 
5688
 1: <unset>
 
5689
 2: Failers
 
5690
    abcd:
 
5691
No match
 
5692
    abcd:
 
5693
No match
 
5694
 
 
5695
/^[^bcd]*(c+)/
 
5696
    aexycd
 
5697
 0: aexyc
 
5698
 1: c
 
5699
 
 
5700
/(>a+)ab/
 
5701
 
 
5702
/(?>a+)b/
 
5703
    aaab
 
5704
 0: aaab
 
5705
 
 
5706
/([[:]+)/
 
5707
    a:[b]:
 
5708
 0: :[
 
5709
 1: :[
 
5710
 
 
5711
/([[=]+)/
 
5712
    a=[b]=
 
5713
 0: =[
 
5714
 1: =[
 
5715
 
 
5716
/([[.]+)/
 
5717
    a.[b].
 
5718
 0: .[
 
5719
 1: .[
 
5720
 
 
5721
/((?>a+)b)/
 
5722
    aaab
 
5723
 0: aaab
 
5724
 1: aaab
 
5725
 
 
5726
/(?>(a+))b/
 
5727
    aaab
 
5728
 0: aaab
 
5729
 1: aaa
 
5730
 
 
5731
/((?>[^()]+)|\([^()]*\))+/
 
5732
    ((abc(ade)ufh()()x
 
5733
 0: abc(ade)ufh()()x
 
5734
 1: x
 
5735
 
 
5736
/a\Z/
 
5737
    *** Failers
 
5738
No match
 
5739
    aaab
 
5740
No match
 
5741
    a\nb\n
 
5742
No match
 
5743
 
 
5744
/b\Z/
 
5745
    a\nb\n
 
5746
 0: b
 
5747
 
 
5748
/b\z/
 
5749
 
 
5750
/b\Z/
 
5751
    a\nb
 
5752
 0: b
 
5753
 
 
5754
/b\z/
 
5755
    a\nb
 
5756
 0: b
 
5757
    *** Failers
 
5758
No match
 
5759
    
 
5760
/^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/
 
5761
    a
 
5762
 0: a
 
5763
 1: 
 
5764
    abc
 
5765
 0: abc
 
5766
 1: 
 
5767
    a-b
 
5768
 0: a-b
 
5769
 1: 
 
5770
    0-9 
 
5771
 0: 0-9
 
5772
 1: 
 
5773
    a.b
 
5774
 0: a.b
 
5775
 1: 
 
5776
    5.6.7  
 
5777
 0: 5.6.7
 
5778
 1: 
 
5779
    the.quick.brown.fox
 
5780
 0: the.quick.brown.fox
 
5781
 1: 
 
5782
    a100.b200.300c  
 
5783
 0: a100.b200.300c
 
5784
 1: 
 
5785
    12-ab.1245 
 
5786
 0: 12-ab.1245
 
5787
 1: 
 
5788
    *** Failers
 
5789
No match
 
5790
    \
 
5791
No match
 
5792
    .a
 
5793
No match
 
5794
    -a
 
5795
No match
 
5796
    a-
 
5797
No match
 
5798
    a.  
 
5799
No match
 
5800
    a_b 
 
5801
No match
 
5802
    a.-
 
5803
No match
 
5804
    a..  
 
5805
No match
 
5806
    ab..bc 
 
5807
No match
 
5808
    the.quick.brown.fox-
 
5809
No match
 
5810
    the.quick.brown.fox.
 
5811
No match
 
5812
    the.quick.brown.fox_
 
5813
No match
 
5814
    the.quick.brown.fox+       
 
5815
No match
 
5816
 
 
5817
/(?>.*)(?<=(abcd|wxyz))/
 
5818
    alphabetabcd
 
5819
 0: alphabetabcd
 
5820
 1: abcd
 
5821
    endingwxyz
 
5822
 0: endingwxyz
 
5823
 1: wxyz
 
5824
    *** Failers
 
5825
No match
 
5826
    a rather long string that doesn't end with one of them
 
5827
No match
 
5828
 
 
5829
/word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
 
5830
    word cat dog elephant mussel cow horse canary baboon snake shark otherword
 
5831
 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
 
5832
    word cat dog elephant mussel cow horse canary baboon snake shark
 
5833
No match
 
5834
  
 
5835
/word (?>[a-zA-Z0-9]+ ){0,30}otherword/
 
5836
    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
 
5837
No match
 
5838
 
 
5839
/(?<=\d{3}(?!999))foo/
 
5840
    999foo
 
5841
 0: foo
 
5842
    123999foo 
 
5843
 0: foo
 
5844
    *** Failers
 
5845
No match
 
5846
    123abcfoo
 
5847
No match
 
5848
    
 
5849
/(?<=(?!...999)\d{3})foo/
 
5850
    999foo
 
5851
 0: foo
 
5852
    123999foo 
 
5853
 0: foo
 
5854
    *** Failers
 
5855
No match
 
5856
    123abcfoo
 
5857
No match
 
5858
 
 
5859
/(?<=\d{3}(?!999)...)foo/
 
5860
    123abcfoo
 
5861
 0: foo
 
5862
    123456foo 
 
5863
 0: foo
 
5864
    *** Failers
 
5865
No match
 
5866
    123999foo  
 
5867
No match
 
5868
    
 
5869
/(?<=\d{3}...)(?<!999)foo/
 
5870
    123abcfoo   
 
5871
 0: foo
 
5872
    123456foo 
 
5873
 0: foo
 
5874
    *** Failers
 
5875
No match
 
5876
    123999foo  
 
5877
No match
 
5878
 
 
5879
/<a[\s]+href[\s]*=[\s]*          # find <a href=
 
5880
 ([\"\'])?                       # find single or double quote
 
5881
 (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
 
5882
                                 # quote, otherwise match up to next space
 
5883
/isx
 
5884
    <a href=abcd xyz
 
5885
 0: <a href=abcd
 
5886
 1: <unset>
 
5887
 2: <unset>
 
5888
 3: abcd
 
5889
    <a href=\"abcd xyz pqr\" cats
 
5890
 0: <a href="abcd xyz pqr"
 
5891
 1: "
 
5892
 2: abcd xyz pqr
 
5893
    <a href=\'abcd xyz pqr\' cats
 
5894
 0: <a href='abcd xyz pqr'
 
5895
 1: '
 
5896
 2: abcd xyz pqr
 
5897
 
 
5898
/<a\s+href\s*=\s*                # find <a href=
 
5899
 (["'])?                         # find single or double quote
 
5900
 (?(1) (.*?)\1 | (\S+))          # if quote found, match up to next matching
 
5901
                                 # quote, otherwise match up to next space
 
5902
/isx
 
5903
    <a href=abcd xyz
 
5904
 0: <a href=abcd
 
5905
 1: <unset>
 
5906
 2: <unset>
 
5907
 3: abcd
 
5908
    <a href=\"abcd xyz pqr\" cats
 
5909
 0: <a href="abcd xyz pqr"
 
5910
 1: "
 
5911
 2: abcd xyz pqr
 
5912
    <a href       =       \'abcd xyz pqr\' cats
 
5913
 0: <a href       =       'abcd xyz pqr'
 
5914
 1: '
 
5915
 2: abcd xyz pqr
 
5916
 
 
5917
/<a\s+href(?>\s*)=(?>\s*)        # find <a href=
 
5918
 (["'])?                         # find single or double quote
 
5919
 (?(1) (.*?)\1 | (\S+))          # if quote found, match up to next matching
 
5920
                                 # quote, otherwise match up to next space
 
5921
/isx
 
5922
    <a href=abcd xyz
 
5923
 0: <a href=abcd
 
5924
 1: <unset>
 
5925
 2: <unset>
 
5926
 3: abcd
 
5927
    <a href=\"abcd xyz pqr\" cats
 
5928
 0: <a href="abcd xyz pqr"
 
5929
 1: "
 
5930
 2: abcd xyz pqr
 
5931
    <a href       =       \'abcd xyz pqr\' cats
 
5932
 0: <a href       =       'abcd xyz pqr'
 
5933
 1: '
 
5934
 2: abcd xyz pqr
 
5935
 
 
5936
/((Z)+|A)*/
 
5937
    ZABCDEFG
 
5938
 0: ZA
 
5939
 1: A
 
5940
 2: Z
 
5941
 
 
5942
/(Z()|A)*/
 
5943
    ZABCDEFG
 
5944
 0: ZA
 
5945
 1: A
 
5946
 2: 
 
5947
 
 
5948
/(Z(())|A)*/
 
5949
    ZABCDEFG
 
5950
 0: ZA
 
5951
 1: A
 
5952
 2: 
 
5953
 3: 
 
5954
 
 
5955
/((?>Z)+|A)*/
 
5956
    ZABCDEFG
 
5957
 0: ZA
 
5958
 1: A
 
5959
 
 
5960
/((?>)+|A)*/
 
5961
    ZABCDEFG
 
5962
 0: 
 
5963
 1: 
 
5964
 
 
5965
/a*/g
 
5966
    abbab
 
5967
 0: a
 
5968
 0: 
 
5969
 0: 
 
5970
 0: a
 
5971
 0: 
 
5972
 0: 
 
5973
 
 
5974
/^[a-\d]/
 
5975
    abcde
 
5976
 0: a
 
5977
    -things
 
5978
 0: -
 
5979
    0digit
 
5980
 0: 0
 
5981
    *** Failers
 
5982
No match
 
5983
    bcdef    
 
5984
No match
 
5985
 
 
5986
/^[\d-a]/
 
5987
    abcde
 
5988
 0: a
 
5989
    -things
 
5990
 0: -
 
5991
    0digit
 
5992
 0: 0
 
5993
    *** Failers
 
5994
No match
 
5995
    bcdef    
 
5996
No match
 
5997
    
 
5998
/[[:space:]]+/
 
5999
    > \x09\x0a\x0c\x0d\x0b<
 
6000
 0:  \x09\x0a\x0c\x0d\x0b
 
6001
     
 
6002
/[[:blank:]]+/
 
6003
    > \x09\x0a\x0c\x0d\x0b<
 
6004
 0:  \x09
 
6005
     
 
6006
/[\s]+/
 
6007
    > \x09\x0a\x0c\x0d\x0b<
 
6008
 0:  \x09\x0a\x0c\x0d
 
6009
     
 
6010
/\s+/
 
6011
    > \x09\x0a\x0c\x0d\x0b<
 
6012
 0:  \x09\x0a\x0c\x0d
 
6013
     
 
6014
/a b/x
 
6015
    ab
 
6016
No match
 
6017
 
 
6018
/(?!\A)x/m
 
6019
  a\nxb\n
 
6020
 0: x
 
6021
 
 
6022
/(?!^)x/m
 
6023
  a\nxb\n
 
6024
No match
 
6025
 
 
6026
/abc\Qabc\Eabc/
 
6027
    abcabcabc
 
6028
 0: abcabcabc
 
6029
    
 
6030
/abc\Q(*+|\Eabc/
 
6031
    abc(*+|abc 
 
6032
 0: abc(*+|abc
 
6033
 
 
6034
/   abc\Q abc\Eabc/x
 
6035
    abc abcabc
 
6036
 0: abc abcabc
 
6037
    *** Failers
 
6038
No match
 
6039
    abcabcabc  
 
6040
No match
 
6041
    
 
6042
/abc#comment
 
6043
    \Q#not comment
 
6044
    literal\E/x
 
6045
    abc#not comment\n    literal     
 
6046
 0: abc#not comment\x0a    literal
 
6047
 
 
6048
/abc#comment
 
6049
    \Q#not comment
 
6050
    literal/x
 
6051
    abc#not comment\n    literal     
 
6052
 0: abc#not comment\x0a    literal
 
6053
 
 
6054
/abc#comment
 
6055
    \Q#not comment
 
6056
    literal\E #more comment
 
6057
    /x
 
6058
    abc#not comment\n    literal     
 
6059
 0: abc#not comment\x0a    literal
 
6060
 
 
6061
/abc#comment
 
6062
    \Q#not comment
 
6063
    literal\E #more comment/x
 
6064
    abc#not comment\n    literal     
 
6065
 0: abc#not comment\x0a    literal
 
6066
 
 
6067
/\Qabc\$xyz\E/
 
6068
    abc\\\$xyz
 
6069
 0: abc\$xyz
 
6070
 
 
6071
/\Qabc\E\$\Qxyz\E/
 
6072
    abc\$xyz
 
6073
 0: abc$xyz
 
6074
 
 
6075
/\Gabc/
 
6076
    abc
 
6077
 0: abc
 
6078
    *** Failers
 
6079
No match
 
6080
    xyzabc  
 
6081
No match
 
6082
 
 
6083
/\Gabc./g
 
6084
    abc1abc2xyzabc3
 
6085
 0: abc1
 
6086
 0: abc2
 
6087
 
 
6088
/abc./g
 
6089
    abc1abc2xyzabc3 
 
6090
 0: abc1
 
6091
 0: abc2
 
6092
 0: abc3
 
6093
 
 
6094
/a(?x: b c )d/
 
6095
    XabcdY
 
6096
 0: abcd
 
6097
    *** Failers 
 
6098
No match
 
6099
    Xa b c d Y 
 
6100
No match
 
6101
 
 
6102
/((?x)x y z | a b c)/
 
6103
    XabcY
 
6104
 0: abc
 
6105
 1: abc
 
6106
    AxyzB 
 
6107
 0: xyz
 
6108
 1: xyz
 
6109
 
 
6110
/(?i)AB(?-i)C/
 
6111
    XabCY
 
6112
 0: abC
 
6113
    *** Failers
 
6114
No match
 
6115
    XabcY  
 
6116
No match
 
6117
 
 
6118
/((?i)AB(?-i)C|D)E/
 
6119
    abCE
 
6120
 0: abCE
 
6121
 1: abC
 
6122
    DE
 
6123
 0: DE
 
6124
 1: D
 
6125
    *** Failers
 
6126
No match
 
6127
    abcE
 
6128
No match
 
6129
    abCe  
 
6130
No match
 
6131
    dE
 
6132
No match
 
6133
    De    
 
6134
No match
 
6135
 
 
6136
/(.*)\d+\1/
 
6137
    abc123abc
 
6138
 0: abc123abc
 
6139
 1: abc
 
6140
    abc123bc 
 
6141
 0: bc123bc
 
6142
 1: bc
 
6143
 
 
6144
/(.*)\d+\1/s
 
6145
    abc123abc
 
6146
 0: abc123abc
 
6147
 1: abc
 
6148
    abc123bc 
 
6149
 0: bc123bc
 
6150
 1: bc
 
6151
    
 
6152
/((.*))\d+\1/
 
6153
    abc123abc
 
6154
 0: abc123abc
 
6155
 1: abc
 
6156
 2: abc
 
6157
    abc123bc  
 
6158
 0: bc123bc
 
6159
 1: bc
 
6160
 2: bc
 
6161
 
 
6162
/-- This tests for an IPv6 address in the form where it can have up to --/
 
6163
/-- eight components, one and only one of which is empty. This must be --/
 
6164
No match
 
6165
/-- an internal component. --/
 
6166
No match
 
6167
 
 
6168
/^(?!:)                       # colon disallowed at start
 
6169
  (?:                         # start of item
 
6170
    (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
 
6171
    (?(1)0 | () ) )           # if null previously matched, fail; else null
 
6172
    :                         # followed by colon
 
6173
  ){1,7}                      # end item; 1-7 of them required               
 
6174
  [0-9a-f]{1,4} $             # final hex number at end of string
 
6175
  (?(1)|.)                    # check that there was an empty component
 
6176
  /xi
 
6177
    a123::a123
 
6178
 0: a123::a123
 
6179
 1: 
 
6180
    a123:b342::abcd
 
6181
 0: a123:b342::abcd
 
6182
 1: 
 
6183
    a123:b342::324e:abcd
 
6184
 0: a123:b342::324e:abcd
 
6185
 1: 
 
6186
    a123:ddde:b342::324e:abcd
 
6187
 0: a123:ddde:b342::324e:abcd
 
6188
 1: 
 
6189
    a123:ddde:b342::324e:dcba:abcd
 
6190
 0: a123:ddde:b342::324e:dcba:abcd
 
6191
 1: 
 
6192
    a123:ddde:9999:b342::324e:dcba:abcd
 
6193
 0: a123:ddde:9999:b342::324e:dcba:abcd
 
6194
 1: 
 
6195
    *** Failers
 
6196
No match
 
6197
    1:2:3:4:5:6:7:8
 
6198
No match
 
6199
    a123:bce:ddde:9999:b342::324e:dcba:abcd
 
6200
No match
 
6201
    a123::9999:b342::324e:dcba:abcd
 
6202
No match
 
6203
    abcde:2:3:4:5:6:7:8
 
6204
No match
 
6205
    ::1
 
6206
No match
 
6207
    abcd:fee0:123::   
 
6208
No match
 
6209
    :1
 
6210
No match
 
6211
    1:  
 
6212
No match
 
6213
 
 
6214
/[z\Qa-d]\E]/
 
6215
    z
 
6216
 0: z
 
6217
    a
 
6218
 0: a
 
6219
    -
 
6220
 0: -
 
6221
    d
 
6222
 0: d
 
6223
    ] 
 
6224
 0: ]
 
6225
    *** Failers
 
6226
 0: a
 
6227
    b     
 
6228
No match
 
6229
 
 
6230
/[\z\C]/
 
6231
    z
 
6232
 0: z
 
6233
    C 
 
6234
 0: C
 
6235
    
 
6236
/\M/
 
6237
    M 
 
6238
 0: M
 
6239
    
 
6240
/(a+)*b/
 
6241
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
 
6242
No match
 
6243
    
 
6244
/(?i)reg(?:ul(?:[a�]|ae)r|ex)/
 
6245
    REGular
 
6246
 0: REGular
 
6247
    regulaer
 
6248
 0: regulaer
 
6249
    Regex  
 
6250
 0: Regex
 
6251
    regul�r 
 
6252
 0: regul\xe4r
 
6253
 
 
6254
/����[�-��-�]+/
 
6255
    �����
 
6256
 0: \xc5\xe6\xe5\xe4\xe0
 
6257
    �����
 
6258
 0: \xc5\xe6\xe5\xe4\xff
 
6259
    �����
 
6260
 0: \xc5\xe6\xe5\xe4\xc0
 
6261
    �����
 
6262
 0: \xc5\xe6\xe5\xe4\xdf
 
6263
 
 
6264
/(?<=Z)X./
 
6265
  \x84XAZXB
 
6266
 0: XB
 
6267
 
 
6268
/ab cd (?x) de fg/
 
6269
    ab cd defg
 
6270
 0: ab cd defg
 
6271
 
 
6272
/ab cd(?x) de fg/
 
6273
    ab cddefg
 
6274
 0: ab cddefg
 
6275
    ** Failers 
 
6276
No match
 
6277
    abcddefg
 
6278
No match
 
6279
 
 
6280
/(?<![^f]oo)(bar)/
 
6281
    foobarX 
 
6282
 0: bar
 
6283
 1: bar
 
6284
    ** Failers 
 
6285
No match
 
6286
    boobarX
 
6287
No match
 
6288
 
 
6289
/(?<![^f])X/
 
6290
    offX
 
6291
 0: X
 
6292
    ** Failers
 
6293
No match
 
6294
    onyX  
 
6295
No match
 
6296
 
 
6297
/(?<=[^f])X/
 
6298
    onyX
 
6299
 0: X
 
6300
    ** Failers
 
6301
No match
 
6302
    offX 
 
6303
No match
 
6304
 
 
6305
/^/mg
 
6306
    a\nb\nc\n
 
6307
 0: 
 
6308
 0: 
 
6309
 0: 
 
6310
    \ 
 
6311
 0: 
 
6312
    
 
6313
/(?<=C\n)^/mg
 
6314
    A\nC\nC\n 
 
6315
 0: 
 
6316
 
 
6317
/(?:(?(1)a|b)(X))+/
 
6318
    bXaX
 
6319
 0: bXaX
 
6320
 1: X
 
6321
 
 
6322
/(?:(?(1)\1a|b)(X|Y))+/
 
6323
    bXXaYYaY
 
6324
 0: bXXaYYaY
 
6325
 1: Y
 
6326
    bXYaXXaX  
 
6327
 0: bX
 
6328
 1: X
 
6329
 
 
6330
/()()()()()()()()()(?:(?(10)\10a|b)(X|Y))+/
 
6331
    bXXaYYaY
 
6332
 0: bX
 
6333
 1: 
 
6334
 2: 
 
6335
 3: 
 
6336
 4: 
 
6337
 5: 
 
6338
 6: 
 
6339
 7: 
 
6340
 8: 
 
6341
 9: 
 
6342
10: X
 
6343
 
 
6344
/[[,abc,]+]/
 
6345
    abc]
 
6346
 0: abc]
 
6347
    a,b]
 
6348
 0: a,b]
 
6349
    [a,b,c]  
 
6350
 0: [a,b,c]
 
6351
 
 
6352
/(?-x: )/x
 
6353
    A\x20B
 
6354
 0:  
 
6355
    
 
6356
"(?x)(?-x: \s*#\s*)"
 
6357
    A # B
 
6358
 0:  # 
 
6359
    ** Failers
 
6360
No match
 
6361
    #  
 
6362
No match
 
6363
 
 
6364
"(?x-is)(?:(?-ixs) \s*#\s*) include"
 
6365
    A #include
 
6366
 0:  #include
 
6367
    ** Failers
 
6368
No match
 
6369
    A#include  
 
6370
No match
 
6371
    A #Include
 
6372
No match
 
6373
 
 
6374
/a*b*\w/
 
6375
    aaabbbb
 
6376
 0: aaabbbb
 
6377
    aaaa
 
6378
 0: aaaa
 
6379
    a
 
6380
 0: a
 
6381
 
 
6382
/a*b?\w/
 
6383
    aaabbbb
 
6384
 0: aaabb
 
6385
    aaaa
 
6386
 0: aaaa
 
6387
    a
 
6388
 0: a
 
6389
 
 
6390
/a*b{0,4}\w/
 
6391
    aaabbbb
 
6392
 0: aaabbbb
 
6393
    aaaa
 
6394
 0: aaaa
 
6395
    a
 
6396
 0: a
 
6397
 
 
6398
/a*b{0,}\w/
 
6399
    aaabbbb
 
6400
 0: aaabbbb
 
6401
    aaaa
 
6402
 0: aaaa
 
6403
    a
 
6404
 0: a
 
6405
    
 
6406
/a*\d*\w/
 
6407
    0a
 
6408
 0: 0a
 
6409
    a 
 
6410
 0: a
 
6411
    
 
6412
/a*b *\w/x
 
6413
    a 
 
6414
 0: a
 
6415
 
 
6416
/a*b#comment
 
6417
  *\w/x
 
6418
    a 
 
6419
 0: a
 
6420
 
 
6421
/a* b *\w/x
 
6422
    a 
 
6423
 0: a
 
6424
 
 
6425
/^\w+=.*(\\\n.*)*/
 
6426
    abc=xyz\\\npqr
 
6427
 0: abc=xyz\
 
6428
 
 
6429
/(?=(\w+))\1:/
 
6430
    abcd:
 
6431
 0: abcd:
 
6432
 1: abcd
 
6433
 
 
6434
/^(?=(\w+))\1:/
 
6435
    abcd:
 
6436
 0: abcd:
 
6437
 1: abcd
 
6438
 
 
6439
/^\Eabc/
 
6440
    abc
 
6441
 0: abc
 
6442
    
 
6443
/^[\Eabc]/
 
6444
    a
 
6445
 0: a
 
6446
    ** Failers 
 
6447
No match
 
6448
    E 
 
6449
No match
 
6450
    
 
6451
/^[a-\Ec]/
 
6452
    b
 
6453
 0: b
 
6454
    ** Failers
 
6455
No match
 
6456
    -
 
6457
No match
 
6458
    E    
 
6459
No match
 
6460
 
 
6461
/^[a\E\E-\Ec]/
 
6462
    b
 
6463
 0: b
 
6464
    ** Failers
 
6465
No match
 
6466
    -
 
6467
No match
 
6468
    E    
 
6469
No match
 
6470
 
 
6471
/^[\E\Qa\E-\Qz\E]+/
 
6472
    b
 
6473
 0: b
 
6474
    ** Failers
 
6475
No match
 
6476
    -  
 
6477
No match
 
6478
    
 
6479
/^[a\Q]bc\E]/
 
6480
    a
 
6481
 0: a
 
6482
    ]
 
6483
 0: ]
 
6484
    c
 
6485
 0: c
 
6486
    
 
6487
/^[a-\Q\E]/
 
6488
    a
 
6489
 0: a
 
6490
    -     
 
6491
 0: -
 
6492
 
 
6493
/^(a()*)*/
 
6494
    aaaa
 
6495
 0: aaaa
 
6496
 1: a
 
6497
 2: 
 
6498
 
 
6499
/^(?:a(?:(?:))*)*/
 
6500
    aaaa
 
6501
 0: aaaa
 
6502
 
 
6503
/^(a()+)+/
 
6504
    aaaa
 
6505
 0: aaaa
 
6506
 1: a
 
6507
 2: 
 
6508
 
 
6509
/^(?:a(?:(?:))+)+/
 
6510
    aaaa
 
6511
 0: aaaa
 
6512
 
 
6513
/(a){0,3}(?(1)b|(c|))*D/
 
6514
    abbD
 
6515
 0: abbD
 
6516
 1: a
 
6517
    ccccD
 
6518
 0: ccccD
 
6519
 1: <unset>
 
6520
 2: 
 
6521
    D  
 
6522
 0: D
 
6523
 1: <unset>
 
6524
 2: 
 
6525
 
 
6526
/(a|)*\d/
 
6527
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
6528
No match
 
6529
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
 
6530
 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
 
6531
 1: 
 
6532
 
 
6533
/(?>a|)*\d/
 
6534
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
6535
No match
 
6536
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
 
6537
 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
 
6538
 
 
6539
/(?:a|)*\d/
 
6540
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
6541
No match
 
6542
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
 
6543
 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
 
6544
 
 
6545
/\Z/g
 
6546
  abc\n
 
6547
 0: 
 
6548
 0: 
 
6549
  
 
6550
/^(?s)(?>.*)(?<!\n)/
 
6551
  abc
 
6552
 0: abc
 
6553
  abc\n  
 
6554
No match
 
6555
 
 
6556
/^(?![^\n]*\n\z)/
 
6557
  abc
 
6558
 0: 
 
6559
  abc\n 
 
6560
No match
 
6561
  
 
6562
/\z(?<!\n)/
 
6563
  abc
 
6564
 0: 
 
6565
  abc\n  
 
6566
No match
 
6567
 
 
6568
/(.*(.)?)*/
 
6569
    abcd
 
6570
 0: abcd
 
6571
 1: 
 
6572
 
 
6573
/( (A | (?(1)0|) )*   )/x
 
6574
    abcd
 
6575
 0: 
 
6576
 1: 
 
6577
 2: 
 
6578
 
 
6579
/( ( (?(1)0|) )*   )/x
 
6580
    abcd
 
6581
 0: 
 
6582
 1: 
 
6583
 2: 
 
6584
 
 
6585
/(  (?(1)0|)*   )/x
 
6586
    abcd
 
6587
 0: 
 
6588
 1: 
 
6589
 
 
6590
/[[:abcd:xyz]]/
 
6591
    a]
 
6592
 0: a]
 
6593
    :] 
 
6594
 0: :]
 
6595
    
 
6596
/[abc[:x\]pqr]/
 
6597
    a
 
6598
 0: a
 
6599
    [
 
6600
 0: [
 
6601
    :
 
6602
 0: :
 
6603
    ]
 
6604
 0: ]
 
6605
    p    
 
6606
 0: p
 
6607
 
 
6608
/ End of testinput1 /