/[pcre]/code/trunk/testdata/testinput5
ViewVC logotype

Diff of /code/trunk/testdata/testinput5

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 49 by nigel, Sat Feb 24 21:39:33 2007 UTC revision 450 by ph10, Wed Sep 16 10:56:40 2009 UTC
# Line 1  Line 1 
1  /-- Because of problems with Perl 5.6 in handling UTF-8 vs non UTF-8 --/  /-- This set of tests checks the API, internals, and non-Perl stuff for UTF-8
2  /-- strings automatically, do not use the \x{} construct except with --/      support, excluding Unicode properties. --/
 /-- patterns that have the /8 option set, and don't use them without! --/  
   
 /a.b/8  
     acb  
     a\x7fb  
     a\x{100}b  
     *** Failers  
     a\nb  
3    
4  /a(.{3})b/8  /\x{100}/8DZ
     a\x{4000}xyb  
     a\x{4000}\x7fyb  
     a\x{4000}\x{100}yb  
     *** Failers  
     a\x{4000}b  
     ac\ncb  
5    
6  /a(.*?)(.)/  /\x{1000}/8DZ
     a\xc0\x88b  
7    
8  /a(.*?)(.)/8  /\x{10000}/8DZ
     a\x{100}b  
9    
10  /a(.*)(.)/  /\x{100000}/8DZ
     a\xc0\x88b  
11    
12  /a(.*)(.)/8  /\x{1000000}/8DZ
     a\x{100}b  
13    
14  /a(.)(.)/  /\x{4000000}/8DZ
     a\xc0\x92bcd  
15    
16  /a(.)(.)/8  /\x{7fffFFFF}/8DZ
     a\x{240}bcd  
17    
18  /a(.?)(.)/  /[\x{ff}]/8DZ
     a\xc0\x92bcd  
19    
20  /a(.?)(.)/8  /[\x{100}]/8DZ
     a\x{240}bcd  
21    
22  /a(.??)(.)/  /\x{ffffffff}/8
     a\xc0\x92bcd  
23    
24  /a(.??)(.)/8  /\x{100000000}/8
     a\x{240}bcd  
25    
26  /a(.{3})b/8  /^\x{100}a\x{1234}/8
27      a\x{1234}xyb      \x{100}a\x{1234}bcd
     a\x{1234}\x{4321}yb  
     a\x{1234}\x{4321}\x{3412}b  
     *** Failers  
     a\x{1234}b  
     ac\ncb  
28    
29  /a(.{3,})b/8  /\x80/8DZ
     a\x{1234}xyb  
     a\x{1234}\x{4321}yb  
     a\x{1234}\x{4321}\x{3412}b  
     axxxxbcdefghijb  
     a\x{1234}\x{4321}\x{3412}\x{3421}b  
     *** Failers  
     a\x{1234}b  
30    
31  /a(.{3,}?)b/8  /\xff/8DZ
     a\x{1234}xyb  
     a\x{1234}\x{4321}yb  
     a\x{1234}\x{4321}\x{3412}b  
     axxxxbcdefghijb  
     a\x{1234}\x{4321}\x{3412}\x{3421}b  
     *** Failers  
     a\x{1234}b  
32    
33  /a(.{3,5})b/8  /\x{0041}\x{2262}\x{0391}\x{002e}/DZ8
34      a\x{1234}xyb      \x{0041}\x{2262}\x{0391}\x{002e}
35      a\x{1234}\x{4321}yb  
36      a\x{1234}\x{4321}\x{3412}b  /\x{D55c}\x{ad6d}\x{C5B4}/DZ8
37      axxxxbcdefghijb      \x{D55c}\x{ad6d}\x{C5B4}
38      a\x{1234}\x{4321}\x{3412}\x{3421}b  
39      axbxxbcdefghijb  /\x{65e5}\x{672c}\x{8a9e}/DZ8
40      axxxxxbcdefghijb      \x{65e5}\x{672c}\x{8a9e}
41      *** Failers  
42      a\x{1234}b  /\x{80}/DZ8
43      axxxxxxbcdefghijb  
44    /\x{084}/DZ8
45    
46    /\x{104}/DZ8
47    
48    /\x{861}/DZ8
49    
50  /a(.{3,5}?)b/8  /\x{212ab}/DZ8
51      a\x{1234}xyb  
52      a\x{1234}\x{4321}yb  /.{3,5}X/DZ8
53      a\x{1234}\x{4321}\x{3412}b      \x{212ab}\x{212ab}\x{212ab}\x{861}X
54      axxxxbcdefghijb  
55      a\x{1234}\x{4321}\x{3412}\x{3421}b  
56      axbxxbcdefghijb  /.{3,5}?/DZ8
57      axxxxxbcdefghijb      \x{212ab}\x{212ab}\x{212ab}\x{861}
58    
59    /(?<=\C)X/8
60        Should produce an error diagnostic
61    
62    /-- This one is here not because it's different to Perl, but because the way
63    the captured single-byte is displayed. (In Perl it becomes a character, and you
64    can't tell the difference.) --/
65    
66    /X(\C)(.*)/8
67        X\x{1234}
68        X\nabc
69    
70    /^[ab]/8DZ
71        bar
72      *** Failers      *** Failers
73      a\x{1234}b      c
74      axxxxxxbcdefghijb      \x{ff}
75        \x{100}
76    
77    /^[^ab]/8DZ
78        c
79        \x{ff}
80        \x{100}
81        *** Failers
82        aaa
83    
84    /[^ab\xC0-\xF0]/8SDZ
85        \x{f1}
86        \x{bf}
87        \x{100}
88        \x{1000}
89        *** Failers
90        \x{c0}
91        \x{f0}
92    
93    /Ā{3,4}/8SDZ
94      \x{100}\x{100}\x{100}\x{100\x{100}
95    
96    /(\x{100}+|x)/8SDZ
97    
98    /(\x{100}*a|x)/8SDZ
99    
100    /(\x{100}{0,2}a|x)/8SDZ
101    
102    /(\x{100}{1,2}a|x)/8SDZ
103    
104    /\x{100}*(\d+|"(?1)")/8
105        1234
106        "1234"
107        \x{100}1234
108        "\x{100}1234"
109        \x{100}\x{100}12ab
110        \x{100}\x{100}"12"
111        *** Failers
112        \x{100}\x{100}abcd
113    
114    /\x{100}/8DZ
115    
116    /\x{100}*/8DZ
117    
118    /a\x{100}*/8DZ
119    
120    /ab\x{100}*/8DZ
121    
122    /a\x{100}\x{101}*/8DZ
123    
124    /a\x{100}\x{101}+/8DZ
125    
126    /\x{100}*A/8DZ
127        A
128    
129    /\x{100}*\d(?R)/8DZ
130    
131    /[^\x{c4}]/DZ
132    
133    /[^\x{c4}]/8DZ
134    
135    /[\x{100}]/8DZ
136        \x{100}
137        Z\x{100}
138        \x{100}Z
139        *** Failers
140    
141    /[Z\x{100}]/8DZ
142        Z\x{100}
143        \x{100}
144        \x{100}Z
145        *** Failers
146    
147  /^[a\x{c0}]/8  /[\x{200}-\x{100}]/8
148    
149    /[Ā-Ą]/8
150        \x{100}
151        \x{104}
152      *** Failers      *** Failers
153        \x{105}
154        \x{ff}
155    
156    /[z-\x{100}]/8DZ
157    
158    /[z\Qa-d]Ā\E]/8DZ
159      \x{100}      \x{100}
160        Ā
161    
162    /[\xFF]/DZ
163        >\xff<
164    
165    /[\xff]/DZ8
166        >\x{ff}<
167    
168  /(?<=aXb)cd/8  /[^\xFF]/DZ
     aXbcd  
169    
170  /(?<=a\x{100}b)cd/8  /[^\xff]/8DZ
     a\x{100}bcd  
171    
172  /(?<=a\x{100000}b)cd/8  /[Ä-Ü]/8
173      a\x{100000}bcd      Ö # Matches without Study
174        \x{d6}
175    
176  /(?:\x{100}){3}b/8  /[Ä-Ü]/8S
177      \x{100}\x{100}\x{100}b      Ö <-- Same with Study
178      *** Failers      \x{d6}
179      \x{100}\x{100}b  
180    /[\x{c4}-\x{dc}]/8
181        Ö # Matches without Study
182        \x{d6}
183    
184    /[\x{c4}-\x{dc}]/8S
185        Ö <-- Same with Study
186        \x{d6}
187    
188    /[]/8
189    
190    //8
191    
192    /xxx/8
193    
194    /xxx/8?DZ
195    
196    /abc/8
197        ]
198        
199        
200        \?
201    
202    /anything/8
203        \xc0\x80
204        \xc1\x8f
205        \xe0\x9f\x80
206        \xf0\x8f\x80\x80
207        \xf8\x87\x80\x80\x80
208        \xfc\x83\x80\x80\x80\x80
209        \xfe\x80\x80\x80\x80\x80
210        \xff\x80\x80\x80\x80\x80
211        \xc3\x8f
212        \xe0\xaf\x80
213        \xe1\x80\x80
214        \xf0\x9f\x80\x80
215        \xf1\x8f\x80\x80
216        \xf8\x88\x80\x80\x80
217        \xf9\x87\x80\x80\x80
218        \xfc\x84\x80\x80\x80\x80
219        \xfd\x83\x80\x80\x80\x80
220        \?\xf8\x88\x80\x80\x80
221        \?\xf9\x87\x80\x80\x80
222        \?\xfc\x84\x80\x80\x80\x80
223        \?\xfd\x83\x80\x80\x80\x80
224    
225    /\x{100}abc(xyz(?1))/8DZ
226    
227    /[^\x{100}]abc(xyz(?1))/8DZ
228    
229    /[ab\x{100}]abc(xyz(?1))/8DZ
230    
231    /(\x{100}(b(?2)c))?/DZ8
232    
233    /(\x{100}(b(?2)c)){0,2}/DZ8
234    
235    /(\x{100}(b(?1)c))?/DZ8
236    
237    /(\x{100}(b(?1)c)){0,2}/DZ8
238    
239    /\W/8
240        A.B
241        A\x{100}B
242    
243    /\w/8
244        \x{100}X
245    
246    /a\x{1234}b/P8
247        a\x{1234}b
248    
249    /^\ሴ/8DZ
250    
251    /\777/I
252    
253    /\777/8I
254      \x{1ff}
255      \777
256    
257    /\x{100}*\d/8DZ
258    
259    /\x{100}*\s/8DZ
260    
261    /\x{100}*\w/8DZ
262    
263    /\x{100}*\D/8DZ
264    
265    /\x{100}*\S/8DZ
266    
267    /\x{100}*\W/8DZ
268    
269    /\x{100}+\x{200}/8DZ
270    
271    /\x{100}+X/8DZ
272    
273    /X+\x{200}/8DZ
274    
275    /()()()()()()()()()()
276     ()()()()()()()()()()
277     ()()()()()()()()()()
278     ()()()()()()()()()()
279     A (x) (?41) B/8x
280        AxxB
281    
282    /^[\x{100}\E-\Q\E\x{150}]/BZ8
283    
284    /^[\QĀ\E-\QŐ\E]/BZ8
285    
286    /^[\QĀ\E-\QŐ\E/BZ8
287    
288    /^abc./mgx8<any>
289        abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
290    
291    /abc.$/mgx8<any>
292        abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9
293    
294    /^a\Rb/8<bsr_unicode>
295        a\nb
296        a\rb
297        a\r\nb
298        a\x0bb
299        a\x0cb
300        a\x{85}b
301        a\x{2028}b
302        a\x{2029}b
303        ** Failers
304        a\n\rb
305    
306    /^a\R*b/8<bsr_unicode>
307        ab
308        a\nb
309        a\rb
310        a\r\nb
311        a\x0bb
312        a\x0c\x{2028}\x{2029}b
313        a\x{85}b
314        a\n\rb
315        a\n\r\x{85}\x0cb
316    
317    /^a\R+b/8<bsr_unicode>
318        a\nb
319        a\rb
320        a\r\nb
321        a\x0bb
322        a\x0c\x{2028}\x{2029}b
323        a\x{85}b
324        a\n\rb
325        a\n\r\x{85}\x0cb
326        ** Failers
327        ab
328    
329    /^a\R{1,3}b/8<bsr_unicode>
330        a\nb
331        a\n\rb
332        a\n\r\x{85}b
333        a\r\n\r\nb
334        a\r\n\r\n\r\nb
335        a\n\r\n\rb
336        a\n\n\r\nb
337        ** Failers
338        a\n\n\n\rb
339        a\r
340    
341    /\H\h\V\v/8
342        X X\x0a
343        X\x09X\x0b
344        ** Failers
345        \x{a0} X\x0a
346    
347    /\H*\h+\V?\v{3,4}/8
348        \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
349        \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
350        \x09\x20\x{a0}\x0a\x0b\x0c
351        ** Failers
352        \x09\x20\x{a0}\x0a\x0b
353    
354    /\H\h\V\v/8
355        \x{3001}\x{3000}\x{2030}\x{2028}
356        X\x{180e}X\x{85}
357        ** Failers
358        \x{2009} X\x0a
359    
360    /\H*\h+\V?\v{3,4}/8
361        \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
362        \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
363        \x09\x20\x{202f}\x0a\x0b\x0c
364        ** Failers
365        \x09\x{200a}\x{a0}\x{2028}\x0b
366    
367    /[\h]/8BZ
368        >\x{1680}
369    
370    /[\h]{3,}/8BZ
371        >\x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}<
372    
373    /[\v]/8BZ
374    
375    /[\H]/8BZ
376    
377    /[\V]/8BZ
378    
379    /.*$/8<any>
380        \x{1ec5}
381    
382    /-- This tests the stricter UTF-8 check according to RFC 3629. --/
383    
384    /X/8
385        \x{0}\x{d7ff}\x{e000}\x{10ffff}
386        \x{d800}
387        \x{d800}\?
388        \x{da00}
389        \x{da00}\?
390        \x{dfff}
391        \x{dfff}\?
392        \x{110000}
393        \x{110000}\?
394        \x{2000000}
395        \x{2000000}\?
396        \x{7fffffff}
397        \x{7fffffff}\?
398    
399    /a\Rb/I8<bsr_anycrlf>
400        a\rb
401        a\nb
402        a\r\nb
403        ** Failers
404        a\x{85}b
405        a\x0bb
406    
407    /a\Rb/I8<bsr_unicode>
408        a\rb
409        a\nb
410        a\r\nb
411        a\x{85}b
412        a\x0bb
413        ** Failers
414        a\x{85}b\<bsr_anycrlf>
415        a\x0bb\<bsr_anycrlf>
416    
417    /a\R?b/I8<bsr_anycrlf>
418        a\rb
419        a\nb
420        a\r\nb
421        ** Failers
422        a\x{85}b
423        a\x0bb
424    
425    /a\R?b/I8<bsr_unicode>
426        a\rb
427        a\nb
428        a\r\nb
429        a\x{85}b
430        a\x0bb
431        ** Failers
432        a\x{85}b\<bsr_anycrlf>
433        a\x0bb\<bsr_anycrlf>
434    
435    /.*a.*=.b.*/8<ANY>
436        QQQ\x{2029}ABCaXYZ=!bPQR
437        ** Failers
438        a\x{2029}b
439        \x61\xe2\x80\xa9\x62
440    
441    /[[:a\x{100}b:]]/8
442    
443    /a[^]b/<JS>8
444        a\x{1234}b
445        a\nb
446        ** Failers
447        ab
448    
449    /a[^]+b/<JS>8
450        aXb
451        a\nX\nX\x{1234}b
452        ** Failers
453        ab
454    
455    /(\x{de})\1/
456        \x{de}\x{de}
457        \x{123}
458    
459    /X/8f<any>
460        A\x{1ec5}ABCXYZ
461    
462    /(*UTF8)\x{1234}/
463      abcd\x{1234}pqr
464    
465    /(*CRLF)(*UTF8)(*BSR_UNICODE)a\Rb/I
466    
467    /Xa{2,4}b/8
468        X\P
469        Xa\P
470        Xaa\P
471        Xaaa\P
472        Xaaaa\P
473    
474    /Xa{2,4}?b/8
475        X\P
476        Xa\P
477        Xaa\P
478        Xaaa\P
479        Xaaaa\P
480    
481    /Xa{2,4}+b/8
482        X\P
483        Xa\P
484        Xaa\P
485        Xaaa\P
486        Xaaaa\P
487    
488    /X\x{123}{2,4}b/8
489        X\P
490        X\x{123}\P
491        X\x{123}\x{123}\P
492        X\x{123}\x{123}\x{123}\P
493        X\x{123}\x{123}\x{123}\x{123}\P
494    
495    /X\x{123}{2,4}?b/8
496        X\P
497        X\x{123}\P
498        X\x{123}\x{123}\P
499        X\x{123}\x{123}\x{123}\P
500        X\x{123}\x{123}\x{123}\x{123}\P
501    
502    /X\x{123}{2,4}+b/8
503        X\P
504        X\x{123}\P
505        X\x{123}\x{123}\P
506        X\x{123}\x{123}\x{123}\P
507        X\x{123}\x{123}\x{123}\x{123}\P
508    
509    /X\x{123}{2,4}b/8
510        Xx\P
511        X\x{123}x\P
512        X\x{123}\x{123}x\P
513        X\x{123}\x{123}\x{123}x\P
514        X\x{123}\x{123}\x{123}\x{123}x\P
515    
516    /X\x{123}{2,4}?b/8
517        Xx\P
518        X\x{123}x\P
519        X\x{123}\x{123}x\P
520        X\x{123}\x{123}\x{123}x\P
521        X\x{123}\x{123}\x{123}\x{123}x\P
522    
523    /X\x{123}{2,4}+b/8
524        Xx\P
525        X\x{123}x\P
526        X\x{123}\x{123}x\P
527        X\x{123}\x{123}\x{123}x\P
528        X\x{123}\x{123}\x{123}\x{123}x\P
529    
530    /X\d{2,4}b/8
531        X\P
532        X3\P
533        X33\P
534        X333\P
535        X3333\P
536    
537    /X\d{2,4}?b/8
538        X\P
539        X3\P
540        X33\P
541        X333\P
542        X3333\P
543    
544    /X\d{2,4}+b/8
545        X\P
546        X3\P
547        X33\P
548        X333\P
549        X3333\P
550    
551    /X\D{2,4}b/8
552        X\P
553        Xa\P
554        Xaa\P
555        Xaaa\P
556        Xaaaa\P
557    
558    /X\D{2,4}?b/8
559        X\P
560        Xa\P
561        Xaa\P
562        Xaaa\P
563        Xaaaa\P
564    
565    /X\D{2,4}+b/8
566        X\P
567        Xa\P
568        Xaa\P
569        Xaaa\P
570        Xaaaa\P
571    
572    /X\D{2,4}b/8
573        X\P
574        X\x{123}\P
575        X\x{123}\x{123}\P
576        X\x{123}\x{123}\x{123}\P
577        X\x{123}\x{123}\x{123}\x{123}\P
578    
579    /X\D{2,4}?b/8
580        X\P
581        X\x{123}\P
582        X\x{123}\x{123}\P
583        X\x{123}\x{123}\x{123}\P
584        X\x{123}\x{123}\x{123}\x{123}\P
585    
586    /X\D{2,4}+b/8
587        X\P
588        X\x{123}\P
589        X\x{123}\x{123}\P
590        X\x{123}\x{123}\x{123}\P
591        X\x{123}\x{123}\x{123}\x{123}\P
592    
593    /X[abc]{2,4}b/8
594        X\P
595        Xa\P
596        Xaa\P
597        Xaaa\P
598        Xaaaa\P
599    
600    /X[abc]{2,4}?b/8
601        X\P
602        Xa\P
603        Xaa\P
604        Xaaa\P
605        Xaaaa\P
606    
607    /X[abc]{2,4}+b/8
608        X\P
609        Xa\P
610        Xaa\P
611        Xaaa\P
612        Xaaaa\P
613    
614    /X[abc\x{123}]{2,4}b/8
615        X\P
616        X\x{123}\P
617        X\x{123}\x{123}\P
618        X\x{123}\x{123}\x{123}\P
619        X\x{123}\x{123}\x{123}\x{123}\P
620    
621    /X[abc\x{123}]{2,4}?b/8
622        X\P
623        X\x{123}\P
624        X\x{123}\x{123}\P
625        X\x{123}\x{123}\x{123}\P
626        X\x{123}\x{123}\x{123}\x{123}\P
627    
628    /X[abc\x{123}]{2,4}+b/8
629        X\P
630        X\x{123}\P
631        X\x{123}\x{123}\P
632        X\x{123}\x{123}\x{123}\P
633        X\x{123}\x{123}\x{123}\x{123}\P
634    
635    /X[^a]{2,4}b/8
636        X\P
637        Xz\P
638        Xzz\P
639        Xzzz\P
640        Xzzzz\P
641    
642    /X[^a]{2,4}?b/8
643        X\P
644        Xz\P
645        Xzz\P
646        Xzzz\P
647        Xzzzz\P
648    
649    /X[^a]{2,4}+b/8
650        X\P
651        Xz\P
652        Xzz\P
653        Xzzz\P
654        Xzzzz\P
655    
656    /X[^a]{2,4}b/8
657        X\P
658        X\x{123}\P
659        X\x{123}\x{123}\P
660        X\x{123}\x{123}\x{123}\P
661        X\x{123}\x{123}\x{123}\x{123}\P
662    
663    /X[^a]{2,4}?b/8
664        X\P
665        X\x{123}\P
666        X\x{123}\x{123}\P
667        X\x{123}\x{123}\x{123}\P
668        X\x{123}\x{123}\x{123}\x{123}\P
669    
670    /X[^a]{2,4}+b/8
671        X\P
672        X\x{123}\P
673        X\x{123}\x{123}\P
674        X\x{123}\x{123}\x{123}\P
675        X\x{123}\x{123}\x{123}\x{123}\P
676    
677    /(Y)X\1{2,4}b/8
678        YX\P
679        YXY\P
680        YXYY\P
681        YXYYY\P
682        YXYYYY\P
683    
684    /(Y)X\1{2,4}?b/8
685        YX\P
686        YXY\P
687        YXYY\P
688        YXYYY\P
689        YXYYYY\P
690    
691    /(Y)X\1{2,4}+b/8
692        YX\P
693        YXY\P
694        YXYY\P
695        YXYYY\P
696        YXYYYY\P
697    
698    /(\x{123})X\1{2,4}b/8
699        \x{123}X\P
700        \x{123}X\x{123}\P
701        \x{123}X\x{123}\x{123}\P
702        \x{123}X\x{123}\x{123}\x{123}\P
703        \x{123}X\x{123}\x{123}\x{123}\x{123}\P
704    
705    /(\x{123})X\1{2,4}?b/8
706        \x{123}X\P
707        \x{123}X\x{123}\P
708        \x{123}X\x{123}\x{123}\P
709        \x{123}X\x{123}\x{123}\x{123}\P
710        \x{123}X\x{123}\x{123}\x{123}\x{123}\P
711    
712    /(\x{123})X\1{2,4}+b/8
713        \x{123}X\P
714        \x{123}X\x{123}\P
715        \x{123}X\x{123}\x{123}\P
716        \x{123}X\x{123}\x{123}\x{123}\P
717        \x{123}X\x{123}\x{123}\x{123}\x{123}\P
718    
719    /\bthe cat\b/8
720        the cat\P
721        the cat\P\P
722    
723  / End of testinput5 /  /-- End of testinput5 --/

Legend:
Removed from v.49  
changed lines
  Added in v.450

  ViewVC Help
Powered by ViewVC 1.1.5