• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/-- This set of tests checks UTF-8 support with the DFA matching functionality
2    of pcre_dfa_exec(). The -dfa flag must be used with pcretest when running
3    it. --/
4
5/\x{100}ab/8
6  \x{100}ab
7
8/a\x{100}*b/8
9    ab
10    a\x{100}b
11    a\x{100}\x{100}b
12
13/a\x{100}+b/8
14    a\x{100}b
15    a\x{100}\x{100}b
16    *** Failers
17    ab
18
19/\bX/8
20    Xoanon
21    +Xoanon
22    \x{300}Xoanon
23    *** Failers
24    YXoanon
25
26/\BX/8
27    YXoanon
28    *** Failers
29    Xoanon
30    +Xoanon
31    \x{300}Xoanon
32
33/X\b/8
34    X+oanon
35    ZX\x{300}oanon
36    FAX
37    *** Failers
38    Xoanon
39
40/X\B/8
41    Xoanon
42    *** Failers
43    X+oanon
44    ZX\x{300}oanon
45    FAX
46
47/[^a]/8
48    abcd
49    a\x{100}
50
51/^[abc\x{123}\x{400}-\x{402}]{2,3}\d/8
52    ab99
53    \x{123}\x{123}45
54    \x{400}\x{401}\x{402}6
55    *** Failers
56    d99
57    \x{123}\x{122}4
58    \x{400}\x{403}6
59    \x{400}\x{401}\x{402}\x{402}6
60
61/abc/8
62    �]
6364    ���
65    ���\?
66    \xe1\x88
67    \P\xe1\x88
68    \P\P\xe1\x88
69
70/a.b/8
71    acb
72    a\x7fb
73    a\x{100}b
74    *** Failers
75    a\nb
76
77/a(.{3})b/8
78    a\x{4000}xyb
79    a\x{4000}\x7fyb
80    a\x{4000}\x{100}yb
81    *** Failers
82    a\x{4000}b
83    ac\ncb
84
85/a(.*?)(.)/
86    a\xc0\x88b
87
88/a(.*?)(.)/8
89    a\x{100}b
90
91/a(.*)(.)/
92    a\xc0\x88b
93
94/a(.*)(.)/8
95    a\x{100}b
96
97/a(.)(.)/
98    a\xc0\x92bcd
99
100/a(.)(.)/8
101    a\x{240}bcd
102
103/a(.?)(.)/
104    a\xc0\x92bcd
105
106/a(.?)(.)/8
107    a\x{240}bcd
108
109/a(.??)(.)/
110    a\xc0\x92bcd
111
112/a(.??)(.)/8
113    a\x{240}bcd
114
115/a(.{3})b/8
116    a\x{1234}xyb
117    a\x{1234}\x{4321}yb
118    a\x{1234}\x{4321}\x{3412}b
119    *** Failers
120    a\x{1234}b
121    ac\ncb
122
123/a(.{3,})b/8
124    a\x{1234}xyb
125    a\x{1234}\x{4321}yb
126    a\x{1234}\x{4321}\x{3412}b
127    axxxxbcdefghijb
128    a\x{1234}\x{4321}\x{3412}\x{3421}b
129    *** Failers
130    a\x{1234}b
131
132/a(.{3,}?)b/8
133    a\x{1234}xyb
134    a\x{1234}\x{4321}yb
135    a\x{1234}\x{4321}\x{3412}b
136    axxxxbcdefghijb
137    a\x{1234}\x{4321}\x{3412}\x{3421}b
138    *** Failers
139    a\x{1234}b
140
141/a(.{3,5})b/8
142    a\x{1234}xyb
143    a\x{1234}\x{4321}yb
144    a\x{1234}\x{4321}\x{3412}b
145    axxxxbcdefghijb
146    a\x{1234}\x{4321}\x{3412}\x{3421}b
147    axbxxbcdefghijb
148    axxxxxbcdefghijb
149    *** Failers
150    a\x{1234}b
151    axxxxxxbcdefghijb
152
153/a(.{3,5}?)b/8
154    a\x{1234}xyb
155    a\x{1234}\x{4321}yb
156    a\x{1234}\x{4321}\x{3412}b
157    axxxxbcdefghijb
158    a\x{1234}\x{4321}\x{3412}\x{3421}b
159    axbxxbcdefghijb
160    axxxxxbcdefghijb
161    *** Failers
162    a\x{1234}b
163    axxxxxxbcdefghijb
164
165/^[a\x{c0}]/8
166    *** Failers
167    \x{100}
168
169/(?<=aXb)cd/8
170    aXbcd
171
172/(?<=a\x{100}b)cd/8
173    a\x{100}bcd
174
175/(?<=a\x{100000}b)cd/8
176    a\x{100000}bcd
177
178/(?:\x{100}){3}b/8
179    \x{100}\x{100}\x{100}b
180    *** Failers
181    \x{100}\x{100}b
182
183/\x{ab}/8
184    \x{ab}
185    \xc2\xab
186    *** Failers
187    \x00{ab}
188
189/(?<=(.))X/8
190    WXYZ
191    \x{256}XYZ
192    *** Failers
193    XYZ
194
195/[^a]+/8g
196    bcd
197    \x{100}aY\x{256}Z
198
199/^[^a]{2}/8
200    \x{100}bc
201
202/^[^a]{2,}/8
203    \x{100}bcAa
204
205/^[^a]{2,}?/8
206    \x{100}bca
207
208/[^a]+/8ig
209    bcd
210    \x{100}aY\x{256}Z
211
212/^[^a]{2}/8i
213    \x{100}bc
214
215/^[^a]{2,}/8i
216    \x{100}bcAa
217
218/^[^a]{2,}?/8i
219    \x{100}bca
220
221/\x{100}{0,0}/8
222    abcd
223
224/\x{100}?/8
225    abcd
226    \x{100}\x{100}
227
228/\x{100}{0,3}/8
229    \x{100}\x{100}
230    \x{100}\x{100}\x{100}\x{100}
231
232/\x{100}*/8
233    abce
234    \x{100}\x{100}\x{100}\x{100}
235
236/\x{100}{1,1}/8
237    abcd\x{100}\x{100}\x{100}\x{100}
238
239/\x{100}{1,3}/8
240    abcd\x{100}\x{100}\x{100}\x{100}
241
242/\x{100}+/8
243    abcd\x{100}\x{100}\x{100}\x{100}
244
245/\x{100}{3}/8
246    abcd\x{100}\x{100}\x{100}XX
247
248/\x{100}{3,5}/8
249    abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
250
251/\x{100}{3,}/8
252    abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
253
254/(?<=a\x{100}{2}b)X/8
255    Xyyya\x{100}\x{100}bXzzz
256
257/\D*/8
258  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
259
260/\D*/8
261  \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
262
263/\D/8
264    1X2
265    1\x{100}2
266
267/>\S/8
268    > >X Y
269    > >\x{100} Y
270
271/\d/8
272    \x{100}3
273
274/\s/8
275    \x{100} X
276
277/\D+/8
278    12abcd34
279    *** Failers
280    1234
281
282/\D{2,3}/8
283    12abcd34
284    12ab34
285    *** Failers
286    1234
287    12a34
288
289/\D{2,3}?/8
290    12abcd34
291    12ab34
292    *** Failers
293    1234
294    12a34
295
296/\d+/8
297    12abcd34
298    *** Failers
299
300/\d{2,3}/8
301    12abcd34
302    1234abcd
303    *** Failers
304    1.4
305
306/\d{2,3}?/8
307    12abcd34
308    1234abcd
309    *** Failers
310    1.4
311
312/\S+/8
313    12abcd34
314    *** Failers
315    \    \
316
317/\S{2,3}/8
318    12abcd34
319    1234abcd
320    *** Failers
321    \     \
322
323/\S{2,3}?/8
324    12abcd34
325    1234abcd
326    *** Failers
327    \     \
328
329/>\s+</8
330    12>      <34
331    *** Failers
332
333/>\s{2,3}</8
334    ab>  <cd
335    ab>   <ce
336    *** Failers
337    ab>    <cd
338
339/>\s{2,3}?</8
340    ab>  <cd
341    ab>   <ce
342    *** Failers
343    ab>    <cd
344
345/\w+/8
346    12      34
347    *** Failers
348    +++=*!
349
350/\w{2,3}/8
351    ab  cd
352    abcd ce
353    *** Failers
354    a.b.c
355
356/\w{2,3}?/8
357    ab  cd
358    abcd ce
359    *** Failers
360    a.b.c
361
362/\W+/8
363    12====34
364    *** Failers
365    abcd
366
367/\W{2,3}/8
368    ab====cd
369    ab==cd
370    *** Failers
371    a.b.c
372
373/\W{2,3}?/8
374    ab====cd
375    ab==cd
376    *** Failers
377    a.b.c
378
379/[\x{100}]/8
380    \x{100}
381    Z\x{100}
382    \x{100}Z
383    *** Failers
384
385/[Z\x{100}]/8
386    Z\x{100}
387    \x{100}
388    \x{100}Z
389    *** Failers
390
391/[\x{100}\x{200}]/8
392   ab\x{100}cd
393   ab\x{200}cd
394   *** Failers
395
396/[\x{100}-\x{200}]/8
397   ab\x{100}cd
398   ab\x{200}cd
399   ab\x{111}cd
400   *** Failers
401
402/[z-\x{200}]/8
403   ab\x{100}cd
404   ab\x{200}cd
405   ab\x{111}cd
406   abzcd
407   ab|cd
408   *** Failers
409
410/[Q\x{100}\x{200}]/8
411   ab\x{100}cd
412   ab\x{200}cd
413   Q?
414   *** Failers
415
416/[Q\x{100}-\x{200}]/8
417   ab\x{100}cd
418   ab\x{200}cd
419   ab\x{111}cd
420   Q?
421   *** Failers
422
423/[Qz-\x{200}]/8
424   ab\x{100}cd
425   ab\x{200}cd
426   ab\x{111}cd
427   abzcd
428   ab|cd
429   Q?
430   *** Failers
431
432/[\x{100}\x{200}]{1,3}/8
433   ab\x{100}cd
434   ab\x{200}cd
435   ab\x{200}\x{100}\x{200}\x{100}cd
436   *** Failers
437
438/[\x{100}\x{200}]{1,3}?/8
439   ab\x{100}cd
440   ab\x{200}cd
441   ab\x{200}\x{100}\x{200}\x{100}cd
442   *** Failers
443
444/[Q\x{100}\x{200}]{1,3}/8
445   ab\x{100}cd
446   ab\x{200}cd
447   ab\x{200}\x{100}\x{200}\x{100}cd
448   *** Failers
449
450/[Q\x{100}\x{200}]{1,3}?/8
451   ab\x{100}cd
452   ab\x{200}cd
453   ab\x{200}\x{100}\x{200}\x{100}cd
454   *** Failers
455
456/(?<=[\x{100}\x{200}])X/8
457    abc\x{200}X
458    abc\x{100}X
459    *** Failers
460    X
461
462/(?<=[Q\x{100}\x{200}])X/8
463    abc\x{200}X
464    abc\x{100}X
465    abQX
466    *** Failers
467    X
468
469/(?<=[\x{100}\x{200}]{3})X/8
470    abc\x{100}\x{200}\x{100}X
471    *** Failers
472    abc\x{200}X
473    X
474
475/[^\x{100}\x{200}]X/8
476    AX
477    \x{150}X
478    \x{500}X
479    *** Failers
480    \x{100}X
481    \x{200}X
482
483/[^Q\x{100}\x{200}]X/8
484    AX
485    \x{150}X
486    \x{500}X
487    *** Failers
488    \x{100}X
489    \x{200}X
490    QX
491
492/[^\x{100}-\x{200}]X/8
493    AX
494    \x{500}X
495    *** Failers
496    \x{100}X
497    \x{150}X
498    \x{200}X
499
500/[z-\x{100}]/8i
501    z
502    Z
503    \x{100}
504    *** Failers
505    \x{102}
506    y
507
508/[\xFF]/
509    >\xff<
510
511/[\xff]/8
512    >\x{ff}<
513
514/[^\xFF]/
515    XYZ
516
517/[^\xff]/8
518    XYZ
519    \x{123}
520
521/^[ac]*b/8
522  xb
523
524/^[ac\x{100}]*b/8
525  xb
526
527/^[^x]*b/8i
528  xb
529
530/^[^x]*b/8
531  xb
532
533/^\d*b/8
534  xb
535
536/(|a)/g8
537    catac
538    a\x{256}a
539
540/^\x{85}$/8i
541    \x{85}
542
543/^abc./mgx8<any>
544    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
545
546/abc.$/mgx8<any>
547    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9
548
549/^a\Rb/8<bsr_unicode>
550    a\nb
551    a\rb
552    a\r\nb
553    a\x0bb
554    a\x0cb
555    a\x{85}b
556    a\x{2028}b
557    a\x{2029}b
558    ** Failers
559    a\n\rb
560
561/^a\R*b/8<bsr_unicode>
562    ab
563    a\nb
564    a\rb
565    a\r\nb
566    a\x0bb
567    a\x0c\x{2028}\x{2029}b
568    a\x{85}b
569    a\n\rb
570    a\n\r\x{85}\x0cb
571
572/^a\R+b/8<bsr_unicode>
573    a\nb
574    a\rb
575    a\r\nb
576    a\x0bb
577    a\x0c\x{2028}\x{2029}b
578    a\x{85}b
579    a\n\rb
580    a\n\r\x{85}\x0cb
581    ** Failers
582    ab
583
584/^a\R{1,3}b/8<bsr_unicode>
585    a\nb
586    a\n\rb
587    a\n\r\x{85}b
588    a\r\n\r\nb
589    a\r\n\r\n\r\nb
590    a\n\r\n\rb
591    a\n\n\r\nb
592    ** Failers
593    a\n\n\n\rb
594    a\r
595
596/\h+\V?\v{3,4}/8
597    \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
598
599/\V?\v{3,4}/8
600    \x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
601
602/\h+\V?\v{3,4}/8
603    >\x09\x20\x{a0}X\x0a\x0a\x0a<
604
605/\V?\v{3,4}/8
606    >\x09\x20\x{a0}X\x0a\x0a\x0a<
607
608/\H\h\V\v/8
609    X X\x0a
610    X\x09X\x0b
611    ** Failers
612    \x{a0} X\x0a
613
614/\H*\h+\V?\v{3,4}/8
615    \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
616    \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
617    \x09\x20\x{a0}\x0a\x0b\x0c
618    ** Failers
619    \x09\x20\x{a0}\x0a\x0b
620
621/\H\h\V\v/8
622    \x{3001}\x{3000}\x{2030}\x{2028}
623    X\x{180e}X\x{85}
624    ** Failers
625    \x{2009} X\x0a
626
627/\H*\h+\V?\v{3,4}/8
628    \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
629    \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
630    \x09\x20\x{202f}\x0a\x0b\x0c
631    ** Failers
632    \x09\x{200a}\x{a0}\x{2028}\x0b
633
634/a\Rb/I8<bsr_anycrlf>
635    a\rb
636    a\nb
637    a\r\nb
638    ** Failers
639    a\x{85}b
640    a\x0bb
641
642/a\Rb/I8<bsr_unicode>
643    a\rb
644    a\nb
645    a\r\nb
646    a\x{85}b
647    a\x0bb
648    ** Failers
649    a\x{85}b\<bsr_anycrlf>
650    a\x0bb\<bsr_anycrlf>
651
652/a\R?b/I8<bsr_anycrlf>
653    a\rb
654    a\nb
655    a\r\nb
656    ** Failers
657    a\x{85}b
658    a\x0bb
659
660/a\R?b/I8<bsr_unicode>
661    a\rb
662    a\nb
663    a\r\nb
664    a\x{85}b
665    a\x0bb
666    ** Failers
667    a\x{85}b\<bsr_anycrlf>
668    a\x0bb\<bsr_anycrlf>
669
670/X/8f<any>
671    A\x{1ec5}ABCXYZ
672
673/abcd*/8
674    xxxxabcd\P
675    xxxxabcd\P\P
676
677/abcd*/i8
678    xxxxabcd\P
679    xxxxabcd\P\P
680    XXXXABCD\P
681    XXXXABCD\P\P
682
683/abc\d*/8
684    xxxxabc1\P
685    xxxxabc1\P\P
686
687/abc[de]*/8
688    xxxxabcde\P
689    xxxxabcde\P\P
690
691/\bthe cat\b/8
692    the cat\P
693    the cat\P\P
694
695/a+/8
696    a\x{123}aa\>1
697    a\x{123}aa\>2
698    a\x{123}aa\>3
699    a\x{123}aa\>4
700    a\x{123}aa\>5
701    a\x{123}aa\>6
702
703/-- End of testinput8 --/
704