Annotation of embedaddon/pcre/testdata/testoutput7, revision 1.1.1.3

1.1.1.2   misho       1: /-- These tests for Unicode property support test PCRE's API and show some of
                      2:     the compiled code. They are not Perl-compatible. --/
1.1       misho       3: 
1.1.1.2   misho       4: /[\p{L}]/DZ
                      5: ------------------------------------------------------------------
                      6:         Bra
                      7:         [\p{L}]
                      8:         Ket
                      9:         End
                     10: ------------------------------------------------------------------
                     11: Capturing subpattern count = 0
                     12: No options
                     13: No first char
                     14: No need char
1.1       misho      15: 
1.1.1.2   misho      16: /[\p{^L}]/DZ
                     17: ------------------------------------------------------------------
                     18:         Bra
                     19:         [\P{L}]
                     20:         Ket
                     21:         End
                     22: ------------------------------------------------------------------
                     23: Capturing subpattern count = 0
                     24: No options
                     25: No first char
                     26: No need char
1.1       misho      27: 
1.1.1.2   misho      28: /[\P{L}]/DZ
                     29: ------------------------------------------------------------------
                     30:         Bra
                     31:         [\P{L}]
                     32:         Ket
                     33:         End
                     34: ------------------------------------------------------------------
                     35: Capturing subpattern count = 0
                     36: No options
                     37: No first char
                     38: No need char
1.1       misho      39: 
1.1.1.2   misho      40: /[\P{^L}]/DZ
                     41: ------------------------------------------------------------------
                     42:         Bra
                     43:         [\p{L}]
                     44:         Ket
                     45:         End
                     46: ------------------------------------------------------------------
                     47: Capturing subpattern count = 0
                     48: No options
                     49: No first char
                     50: No need char
1.1       misho      51: 
1.1.1.2   misho      52: /[abc\p{L}\x{0660}]/8DZ
                     53: ------------------------------------------------------------------
                     54:         Bra
                     55:         [a-c\p{L}\x{660}]
                     56:         Ket
                     57:         End
                     58: ------------------------------------------------------------------
                     59: Capturing subpattern count = 0
                     60: Options: utf
                     61: No first char
                     62: No need char
1.1       misho      63: 
1.1.1.2   misho      64: /[\p{Nd}]/8DZ
                     65: ------------------------------------------------------------------
                     66:         Bra
                     67:         [\p{Nd}]
                     68:         Ket
                     69:         End
                     70: ------------------------------------------------------------------
                     71: Capturing subpattern count = 0
                     72: Options: utf
                     73: No first char
                     74: No need char
                     75:     1234
                     76:  0: 1
1.1       misho      77: 
1.1.1.2   misho      78: /[\p{Nd}+-]+/8DZ
                     79: ------------------------------------------------------------------
                     80:         Bra
                     81:         [+\-\p{Nd}]+
                     82:         Ket
                     83:         End
                     84: ------------------------------------------------------------------
                     85: Capturing subpattern count = 0
                     86: Options: utf
                     87: No first char
                     88: No need char
                     89:     1234
                     90:  0: 1234
                     91:     12-34
                     92:  0: 12-34
                     93:     12+\x{661}-34  
                     94:  0: 12+\x{661}-34
                     95:     ** Failers
1.1       misho      96: No match
1.1.1.2   misho      97:     abcd  
1.1       misho      98: No match
                     99: 
1.1.1.2   misho     100: /[\x{105}-\x{109}]/8iDZ
                    101: ------------------------------------------------------------------
                    102:         Bra
                    103:         [\x{104}-\x{109}]
                    104:         Ket
                    105:         End
                    106: ------------------------------------------------------------------
                    107: Capturing subpattern count = 0
                    108: Options: caseless utf
                    109: No first char
                    110: No need char
                    111:     \x{104}
                    112:  0: \x{104}
                    113:     \x{105}
                    114:  0: \x{105}
                    115:     \x{109}  
                    116:  0: \x{109}
                    117:     ** Failers
                    118: No match
                    119:     \x{100}
                    120: No match
                    121:     \x{10a} 
                    122: No match
                    123:     
                    124: /[z-\x{100}]/8iDZ 
                    125: ------------------------------------------------------------------
                    126:         Bra
                    127:         [Z\x{39c}\x{178}z-\x{101}]
                    128:         Ket
                    129:         End
                    130: ------------------------------------------------------------------
                    131: Capturing subpattern count = 0
                    132: Options: caseless utf
                    133: No first char
                    134: No need char
                    135:     Z
                    136:  0: Z
1.1       misho     137:     z
                    138:  0: z
1.1.1.2   misho     139:     \x{39c}
                    140:  0: \x{39c}
                    141:     \x{178}
                    142:  0: \x{178}
                    143:     |
                    144:  0: |
                    145:     \x{80}
                    146:  0: \x{80}
                    147:     \x{ff}
                    148:  0: \x{ff}
                    149:     \x{100}
                    150:  0: \x{100}
                    151:     \x{101} 
                    152:  0: \x{101}
                    153:     ** Failers
                    154: No match
                    155:     \x{102}
                    156: No match
                    157:     Y
                    158: No match
                    159:     y           
                    160: No match
                    161: 
                    162: /[z-\x{100}]/8DZi
                    163: ------------------------------------------------------------------
                    164:         Bra
                    165:         [Z\x{39c}\x{178}z-\x{101}]
                    166:         Ket
                    167:         End
                    168: ------------------------------------------------------------------
                    169: Capturing subpattern count = 0
                    170: Options: caseless utf
                    171: No first char
                    172: No need char
1.1       misho     173: 
1.1.1.2   misho     174: /(?:[\PPa*]*){8,}/
1.1       misho     175: 
1.1.1.2   misho     176: /[\P{Any}]/BZ
                    177: ------------------------------------------------------------------
                    178:         Bra
                    179:         [\P{Any}]
                    180:         Ket
                    181:         End
                    182: ------------------------------------------------------------------
1.1       misho     183: 
1.1.1.2   misho     184: /[\P{Any}\E]/BZ
                    185: ------------------------------------------------------------------
                    186:         Bra
                    187:         [\P{Any}]
                    188:         Ket
                    189:         End
                    190: ------------------------------------------------------------------
1.1       misho     191: 
1.1.1.2   misho     192: /(\P{Yi}+\277)/
1.1       misho     193: 
1.1.1.2   misho     194: /(\P{Yi}+\277)?/
1.1       misho     195: 
1.1.1.2   misho     196: /(?<=\P{Yi}{3}A)X/
1.1       misho     197: 
1.1.1.2   misho     198: /\p{Yi}+(\P{Yi}+)(?1)/
1.1       misho     199: 
1.1.1.2   misho     200: /(\P{Yi}{2}\277)?/
1.1       misho     201: 
1.1.1.2   misho     202: /[\P{Yi}A]/
1.1       misho     203: 
1.1.1.2   misho     204: /[\P{Yi}\P{Yi}\P{Yi}A]/
1.1       misho     205: 
1.1.1.2   misho     206: /[^\P{Yi}A]/
                    207: 
                    208: /[^\P{Yi}\P{Yi}\P{Yi}A]/
                    209: 
                    210: /(\P{Yi}*\277)*/
                    211: 
                    212: /(\P{Yi}*?\277)*/
                    213: 
                    214: /(\p{Yi}*+\277)*/
                    215: 
                    216: /(\P{Yi}?\277)*/
                    217: 
                    218: /(\P{Yi}??\277)*/
                    219: 
                    220: /(\p{Yi}?+\277)*/
                    221: 
                    222: /(\P{Yi}{0,3}\277)*/
                    223: 
                    224: /(\P{Yi}{0,3}?\277)*/
                    225: 
                    226: /(\p{Yi}{0,3}+\277)*/
                    227: 
                    228: /\p{Zl}{2,3}+/8BZ
                    229: ------------------------------------------------------------------
                    230:         Bra
                    231:         prop Zl {2}
                    232:         prop Zl ?+
                    233:         Ket
                    234:         End
                    235: ------------------------------------------------------------------
                    236:     \xe2\x80\xa8\xe2\x80\xa8
                    237:  0: \x{2028}\x{2028}
                    238:     \x{2028}\x{2028}\x{2028}
                    239:  0: \x{2028}\x{2028}\x{2028}
1.1       misho     240:     
1.1.1.2   misho     241: /\p{Zl}/8BZ
                    242: ------------------------------------------------------------------
                    243:         Bra
                    244:         prop Zl
                    245:         Ket
                    246:         End
                    247: ------------------------------------------------------------------
1.1       misho     248: 
1.1.1.2   misho     249: /\p{Lu}{3}+/8BZ
                    250: ------------------------------------------------------------------
                    251:         Bra
                    252:         prop Lu {3}
                    253:         Ket
                    254:         End
                    255: ------------------------------------------------------------------
1.1       misho     256: 
1.1.1.2   misho     257: /\pL{2}+/8BZ
                    258: ------------------------------------------------------------------
                    259:         Bra
                    260:         prop L {2}
                    261:         Ket
                    262:         End
                    263: ------------------------------------------------------------------
                    264: 
                    265: /\p{Cc}{2}+/8BZ
                    266: ------------------------------------------------------------------
                    267:         Bra
                    268:         prop Cc {2}
                    269:         Ket
                    270:         End
                    271: ------------------------------------------------------------------
                    272: 
                    273: /^\p{Cs}/8
                    274:     \?\x{dfff}
                    275:  0: \x{dfff}
                    276:     ** Failers
1.1       misho     277: No match
1.1.1.2   misho     278:     \x{09f} 
1.1       misho     279: No match
1.1.1.2   misho     280:   
                    281: /^\p{Sc}+/8
                    282:     $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
                    283:  0: $\x{a2}\x{a3}\x{a4}\x{a5}
                    284:     \x{9f2}
                    285:  0: \x{9f2}
1.1       misho     286:     ** Failers
                    287: No match
1.1.1.2   misho     288:     X
1.1       misho     289: No match
1.1.1.2   misho     290:     \x{2c2}
1.1       misho     291: No match
1.1.1.2   misho     292:   
                    293: /^\p{Zs}/8
                    294:     \ \
                    295:  0:  
                    296:     \x{a0}
                    297:  0: \x{a0}
                    298:     \x{1680}
                    299:  0: \x{1680}
                    300:     \x{180e}
                    301:  0: \x{180e}
                    302:     \x{2000}
                    303:  0: \x{2000}
                    304:     \x{2001}     
                    305:  0: \x{2001}
1.1       misho     306:     ** Failers
                    307: No match
1.1.1.2   misho     308:     \x{2028}
1.1       misho     309: No match
1.1.1.2   misho     310:     \x{200d} 
1.1       misho     311: No match
1.1.1.2   misho     312:   
                    313: /-- These four are here rather than in test 6 because Perl has problems with
                    314:     the negative versions of the properties. --/
                    315:       
                    316: /\p{^Lu}/8i
                    317:     1234
                    318:  0: 1
1.1       misho     319:     ** Failers
1.1.1.2   misho     320:  0: *
                    321:     ABC 
1.1       misho     322: No match
                    323: 
1.1.1.2   misho     324: /\P{Lu}/8i
                    325:     1234
                    326:  0: 1
1.1       misho     327:     ** Failers
1.1.1.2   misho     328:  0: *
                    329:     ABC 
1.1       misho     330: No match
                    331: 
1.1.1.2   misho     332: /\p{Ll}/8i 
                    333:     a
                    334:  0: a
                    335:     Az
                    336:  0: z
1.1       misho     337:     ** Failers
1.1.1.2   misho     338:  0: a
                    339:     ABC   
1.1       misho     340: No match
                    341: 
1.1.1.2   misho     342: /\p{Lu}/8i
                    343:     A
                    344:  0: A
                    345:     a\x{10a0}B 
                    346:  0: \x{10a0}
1.1       misho     347:     ** Failers 
1.1.1.2   misho     348:  0: F
                    349:     a
1.1       misho     350: No match
1.1.1.2   misho     351:     \x{1d00}  
1.1       misho     352: No match
1.1.1.2   misho     353: 
                    354: /[\x{c0}\x{391}]/8i
                    355:     \x{c0}
                    356:  0: \x{c0}
                    357:     \x{e0} 
                    358:  0: \x{e0}
                    359: 
                    360: /-- The next two are special cases where the lengths of the different cases of
                    361: the same character differ. The first went wrong with heap frame storage; the
                    362: second was broken in all cases. --/
                    363: 
                    364: /^\x{023a}+?(\x{0130}+)/8i
                    365:   \x{023a}\x{2c65}\x{0130}
                    366:  0: \x{23a}\x{2c65}\x{130}
                    367:  1: \x{130}
                    368:   
                    369: /^\x{023a}+([^X])/8i
                    370:   \x{023a}\x{2c65}X
                    371:  0: \x{23a}\x{2c65}
                    372:  1: \x{2c65}
                    373: 
                    374: /\x{c0}+\x{116}+/8i
                    375:     \x{c0}\x{e0}\x{116}\x{117}
                    376:  0: \x{c0}\x{e0}\x{116}\x{117}
                    377: 
                    378: /[\x{c0}\x{116}]+/8i
                    379:     \x{c0}\x{e0}\x{116}\x{117}
                    380:  0: \x{c0}\x{e0}\x{116}\x{117}
                    381: 
                    382: /(\x{de})\1/8i
                    383:     \x{de}\x{de}
                    384:  0: \x{de}\x{de}
                    385:  1: \x{de}
                    386:     \x{de}\x{fe}
                    387:  0: \x{de}\x{fe}
                    388:  1: \x{de}
                    389:     \x{fe}\x{fe}
                    390:  0: \x{fe}\x{fe}
                    391:  1: \x{fe}
                    392:     \x{fe}\x{de}
                    393:  0: \x{fe}\x{de}
                    394:  1: \x{fe}
                    395: 
                    396: /^\x{c0}$/8i
                    397:     \x{c0}
                    398:  0: \x{c0}
                    399:     \x{e0} 
                    400:  0: \x{e0}
                    401: 
                    402: /^\x{e0}$/8i
                    403:     \x{c0}
                    404:  0: \x{c0}
                    405:     \x{e0} 
                    406:  0: \x{e0}
                    407: 
                    408: /-- The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE
                    409: will match it only with UCP support, because without that it has no notion
                    410: of case for anything other than the ASCII letters. --/ 
                    411: 
                    412: /((?i)[\x{c0}])/8
                    413:     \x{c0}
                    414:  0: \x{c0}
                    415:  1: \x{c0}
                    416:     \x{e0} 
                    417:  0: \x{e0}
                    418:  1: \x{e0}
                    419: 
                    420: /(?i:[\x{c0}])/8
                    421:     \x{c0}
                    422:  0: \x{c0}
                    423:     \x{e0} 
                    424:  0: \x{e0}
                    425: 
                    426: /-- This should be Perl-compatible but Perl 5.11 gets \x{300} wrong. --/8
                    427:     
                    428: /^\X/8
                    429:     A
                    430:  0: A
                    431:     A\x{300}BC 
                    432:  0: A\x{300}
                    433:     A\x{300}\x{301}\x{302}BC 
                    434:  0: A\x{300}\x{301}\x{302}
                    435:     *** Failers
                    436:  0: *
                    437:     \x{300}  
1.1       misho     438: No match
                    439:     
1.1.1.2   misho     440: /-- These are PCRE's extra properties to help with Unicodizing \d etc. --/
1.1       misho     441: 
1.1.1.2   misho     442: /^\p{Xan}/8
                    443:     ABCD
                    444:  0: A
                    445:     1234
                    446:  0: 1
                    447:     \x{6ca}
                    448:  0: \x{6ca}
                    449:     \x{a6c}
                    450:  0: \x{a6c}
                    451:     \x{10a7}   
                    452:  0: \x{10a7}
1.1       misho     453:     ** Failers
                    454: No match
1.1.1.2   misho     455:     _ABC   
1.1       misho     456: No match
                    457: 
1.1.1.2   misho     458: /^\p{Xan}+/8
                    459:     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
                    460:  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
1.1       misho     461:     ** Failers
                    462: No match
1.1.1.2   misho     463:     _ABC   
1.1       misho     464: No match
                    465: 
1.1.1.2   misho     466: /^\p{Xan}+?/8
                    467:     \x{6ca}\x{a6c}\x{10a7}_
                    468:  0: \x{6ca}
1.1       misho     469: 
1.1.1.2   misho     470: /^\p{Xan}*/8
                    471:     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
                    472:  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
                    473:     
                    474: /^\p{Xan}{2,9}/8
                    475:     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
                    476:  0: ABCD1234\x{6ca}
                    477:     
                    478: /^\p{Xan}{2,9}?/8
                    479:     \x{6ca}\x{a6c}\x{10a7}_
                    480:  0: \x{6ca}\x{a6c}
                    481:     
                    482: /^[\p{Xan}]/8
                    483:     ABCD1234_
                    484:  0: A
                    485:     1234abcd_
                    486:  0: 1
                    487:     \x{6ca}
                    488:  0: \x{6ca}
                    489:     \x{a6c}
                    490:  0: \x{a6c}
                    491:     \x{10a7}   
                    492:  0: \x{10a7}
1.1       misho     493:     ** Failers
                    494: No match
1.1.1.2   misho     495:     _ABC   
1.1       misho     496: No match
1.1.1.2   misho     497:  
                    498: /^[\p{Xan}]+/8
                    499:     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
                    500:  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
1.1       misho     501:     ** Failers
                    502: No match
1.1.1.2   misho     503:     _ABC   
1.1       misho     504: No match
                    505: 
1.1.1.2   misho     506: /^>\p{Xsp}/8
                    507:     >\x{1680}\x{2028}\x{0b}
                    508:  0: >\x{1680}
                    509:     >\x{a0} 
                    510:  0: >\x{a0}
                    511:     ** Failers
1.1       misho     512: No match
1.1.1.2   misho     513:     \x{0b} 
1.1       misho     514: No match
                    515: 
1.1.1.2   misho     516: /^>\p{Xsp}+/8
                    517:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
                    518:  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
1.1       misho     519: 
1.1.1.2   misho     520: /^>\p{Xsp}+?/8
                    521:     >\x{1680}\x{2028}\x{0b}
                    522:  0: >\x{1680}
1.1       misho     523: 
1.1.1.2   misho     524: /^>\p{Xsp}*/8
                    525:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
                    526:  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
1.1       misho     527:     
1.1.1.2   misho     528: /^>\p{Xsp}{2,9}/8
                    529:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
                    530:  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
1.1       misho     531:     
1.1.1.2   misho     532: /^>\p{Xsp}{2,9}?/8
                    533:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
                    534:  0: > \x{09}
                    535:     
                    536: /^>[\p{Xsp}]/8
                    537:     >\x{2028}\x{0b}
                    538:  0: >\x{2028}
                    539:  
                    540: /^>[\p{Xsp}]+/8
                    541:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
                    542:  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
1.1       misho     543: 
1.1.1.2   misho     544: /^>\p{Xps}/8
                    545:     >\x{1680}\x{2028}\x{0b}
                    546:  0: >\x{1680}
                    547:     >\x{a0} 
                    548:  0: >\x{a0}
1.1       misho     549:     ** Failers
                    550: No match
1.1.1.2   misho     551:     \x{0b} 
1.1       misho     552: No match
                    553: 
1.1.1.2   misho     554: /^>\p{Xps}+/8
                    555:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
                    556:  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
                    557: 
                    558: /^>\p{Xps}+?/8
                    559:     >\x{1680}\x{2028}\x{0b}
                    560:  0: >\x{1680}
1.1       misho     561: 
1.1.1.2   misho     562: /^>\p{Xps}*/8
                    563:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
                    564:  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
                    565:     
                    566: /^>\p{Xps}{2,9}/8
                    567:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
                    568:  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
                    569:     
                    570: /^>\p{Xps}{2,9}?/8
                    571:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
                    572:  0: > \x{09}
                    573:     
                    574: /^>[\p{Xps}]/8
                    575:     >\x{2028}\x{0b}
                    576:  0: >\x{2028}
                    577:  
                    578: /^>[\p{Xps}]+/8
                    579:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
                    580:  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
1.1       misho     581: 
1.1.1.2   misho     582: /^\p{Xwd}/8
1.1       misho     583:     ABCD
1.1.1.2   misho     584:  0: A
                    585:     1234
                    586:  0: 1
                    587:     \x{6ca}
                    588:  0: \x{6ca}
                    589:     \x{a6c}
                    590:  0: \x{a6c}
                    591:     \x{10a7}
                    592:  0: \x{10a7}
                    593:     _ABC    
                    594:  0: _
1.1       misho     595:     ** Failers
                    596: No match
1.1.1.2   misho     597:     [] 
1.1       misho     598: No match
                    599: 
1.1.1.2   misho     600: /^\p{Xwd}+/8
                    601:     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
                    602:  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
                    603: 
                    604: /^\p{Xwd}+?/8
                    605:     \x{6ca}\x{a6c}\x{10a7}_
                    606:  0: \x{6ca}
                    607: 
                    608: /^\p{Xwd}*/8
                    609:     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
                    610:  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
                    611:     
                    612: /^\p{Xwd}{2,9}/8
                    613:     A_B12\x{6ca}\x{a6c}\x{10a7}
                    614:  0: A_B12\x{6ca}\x{a6c}\x{10a7}
                    615:     
                    616: /^\p{Xwd}{2,9}?/8
                    617:     \x{6ca}\x{a6c}\x{10a7}_
                    618:  0: \x{6ca}\x{a6c}
                    619:     
                    620: /^[\p{Xwd}]/8
                    621:     ABCD1234_
                    622:  0: A
                    623:     1234abcd_
                    624:  0: 1
                    625:     \x{6ca}
                    626:  0: \x{6ca}
                    627:     \x{a6c}
                    628:  0: \x{a6c}
                    629:     \x{10a7}   
                    630:  0: \x{10a7}
                    631:     _ABC 
                    632:  0: _
1.1       misho     633:     ** Failers
                    634: No match
1.1.1.2   misho     635:     []   
1.1       misho     636: No match
1.1.1.2   misho     637:  
                    638: /^[\p{Xwd}]+/8
                    639:     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
                    640:  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
                    641: 
                    642: /-- A check not in UTF-8 mode --/
                    643: 
                    644: /^[\p{Xwd}]+/
                    645:     ABCD1234_
                    646:  0: ABCD1234_
                    647:     
                    648: /-- Some negative checks --/
                    649: 
                    650: /^[\P{Xwd}]+/8
                    651:     !.+\x{019}\x{35a}AB
                    652:  0: !.+\x{19}\x{35a}
                    653: 
                    654: /^[\p{^Xwd}]+/8
                    655:     !.+\x{019}\x{35a}AB
                    656:  0: !.+\x{19}\x{35a}
                    657: 
                    658: /[\D]/WBZ8
                    659: ------------------------------------------------------------------
                    660:         Bra
                    661:         [\P{Nd}]
                    662:         Ket
                    663:         End
                    664: ------------------------------------------------------------------
                    665:     1\x{3c8}2
                    666:  0: \x{3c8}
                    667: 
                    668: /[\d]/WBZ8
                    669: ------------------------------------------------------------------
                    670:         Bra
                    671:         [\p{Nd}]
                    672:         Ket
                    673:         End
                    674: ------------------------------------------------------------------
                    675:     >\x{6f4}<
                    676:  0: \x{6f4}
                    677: 
                    678: /[\S]/WBZ8
                    679: ------------------------------------------------------------------
                    680:         Bra
                    681:         [\P{Xsp}]
                    682:         Ket
                    683:         End
                    684: ------------------------------------------------------------------
                    685:     \x{1680}\x{6f4}\x{1680}
                    686:  0: \x{6f4}
                    687: 
                    688: /[\s]/WBZ8
                    689: ------------------------------------------------------------------
                    690:         Bra
                    691:         [\p{Xsp}]
                    692:         Ket
                    693:         End
                    694: ------------------------------------------------------------------
                    695:     >\x{1680}<
                    696:  0: \x{1680}
                    697: 
                    698: /[\W]/WBZ8
                    699: ------------------------------------------------------------------
                    700:         Bra
                    701:         [\P{Xwd}]
                    702:         Ket
                    703:         End
                    704: ------------------------------------------------------------------
                    705:     A\x{1712}B
                    706:  0: \x{1712}
                    707: 
                    708: /[\w]/WBZ8
                    709: ------------------------------------------------------------------
                    710:         Bra
                    711:         [\p{Xwd}]
                    712:         Ket
                    713:         End
                    714: ------------------------------------------------------------------
                    715:     >\x{1723}<
                    716:  0: \x{1723}
                    717: 
                    718: /\D/WBZ8
                    719: ------------------------------------------------------------------
                    720:         Bra
                    721:         notprop Nd
                    722:         Ket
                    723:         End
                    724: ------------------------------------------------------------------
                    725:     1\x{3c8}2
                    726:  0: \x{3c8}
                    727: 
                    728: /\d/WBZ8
                    729: ------------------------------------------------------------------
                    730:         Bra
                    731:         prop Nd
                    732:         Ket
                    733:         End
                    734: ------------------------------------------------------------------
                    735:     >\x{6f4}<
                    736:  0: \x{6f4}
                    737: 
                    738: /\S/WBZ8
                    739: ------------------------------------------------------------------
                    740:         Bra
                    741:         notprop Xsp
                    742:         Ket
                    743:         End
                    744: ------------------------------------------------------------------
                    745:     \x{1680}\x{6f4}\x{1680}
                    746:  0: \x{6f4}
                    747: 
                    748: /\s/WBZ8
                    749: ------------------------------------------------------------------
                    750:         Bra
                    751:         prop Xsp
                    752:         Ket
                    753:         End
                    754: ------------------------------------------------------------------
                    755:     >\x{1680}>
                    756:  0: \x{1680}
                    757: 
                    758: /\W/WBZ8
                    759: ------------------------------------------------------------------
                    760:         Bra
                    761:         notprop Xwd
                    762:         Ket
                    763:         End
                    764: ------------------------------------------------------------------
                    765:     A\x{1712}B
                    766:  0: \x{1712}
                    767: 
                    768: /\w/WBZ8
                    769: ------------------------------------------------------------------
                    770:         Bra
                    771:         prop Xwd
                    772:         Ket
                    773:         End
                    774: ------------------------------------------------------------------
                    775:     >\x{1723}<
                    776:  0: \x{1723}
                    777: 
                    778: /[[:alpha:]]/WBZ
                    779: ------------------------------------------------------------------
                    780:         Bra
                    781:         [\p{L}]
                    782:         Ket
                    783:         End
                    784: ------------------------------------------------------------------
                    785: 
                    786: /[[:lower:]]/WBZ
                    787: ------------------------------------------------------------------
                    788:         Bra
                    789:         [\p{Ll}]
                    790:         Ket
                    791:         End
                    792: ------------------------------------------------------------------
                    793: 
                    794: /[[:upper:]]/WBZ
                    795: ------------------------------------------------------------------
                    796:         Bra
                    797:         [\p{Lu}]
                    798:         Ket
                    799:         End
                    800: ------------------------------------------------------------------
                    801: 
                    802: /[[:alnum:]]/WBZ
                    803: ------------------------------------------------------------------
                    804:         Bra
                    805:         [\p{Xan}]
                    806:         Ket
                    807:         End
                    808: ------------------------------------------------------------------
                    809: 
                    810: /[[:ascii:]]/WBZ
                    811: ------------------------------------------------------------------
                    812:         Bra
                    813:         [\x00-\x7f]
                    814:         Ket
                    815:         End
                    816: ------------------------------------------------------------------
                    817: 
                    818: /[[:cntrl:]]/WBZ
                    819: ------------------------------------------------------------------
                    820:         Bra
                    821:         [\x00-\x1f\x7f]
                    822:         Ket
                    823:         End
                    824: ------------------------------------------------------------------
                    825: 
                    826: /[[:digit:]]/WBZ
                    827: ------------------------------------------------------------------
                    828:         Bra
                    829:         [\p{Nd}]
                    830:         Ket
                    831:         End
                    832: ------------------------------------------------------------------
                    833: 
                    834: /[[:graph:]]/WBZ
                    835: ------------------------------------------------------------------
                    836:         Bra
                    837:         [!-~]
                    838:         Ket
                    839:         End
                    840: ------------------------------------------------------------------
                    841: 
                    842: /[[:print:]]/WBZ
                    843: ------------------------------------------------------------------
                    844:         Bra
                    845:         [ -~]
                    846:         Ket
                    847:         End
                    848: ------------------------------------------------------------------
                    849: 
                    850: /[[:punct:]]/WBZ
                    851: ------------------------------------------------------------------
                    852:         Bra
                    853:         [!-/:-@[-`{-~]
                    854:         Ket
                    855:         End
                    856: ------------------------------------------------------------------
                    857: 
                    858: /[[:space:]]/WBZ
                    859: ------------------------------------------------------------------
                    860:         Bra
                    861:         [\p{Xps}]
                    862:         Ket
                    863:         End
                    864: ------------------------------------------------------------------
                    865: 
                    866: /[[:word:]]/WBZ
                    867: ------------------------------------------------------------------
                    868:         Bra
                    869:         [\p{Xwd}]
                    870:         Ket
                    871:         End
                    872: ------------------------------------------------------------------
                    873: 
                    874: /[[:xdigit:]]/WBZ
                    875: ------------------------------------------------------------------
                    876:         Bra
                    877:         [0-9A-Fa-f]
                    878:         Ket
                    879:         End
                    880: ------------------------------------------------------------------
                    881: 
                    882: /-- Unicode properties for \b abd \B --/
                    883: 
                    884: /\b...\B/8W
                    885:     abc_
                    886:  0: abc
                    887:     \x{37e}abc\x{376} 
                    888:  0: abc
                    889:     \x{37e}\x{376}\x{371}\x{393}\x{394} 
                    890:  0: \x{376}\x{371}\x{393}
                    891:     !\x{c0}++\x{c1}\x{c2} 
                    892:  0: ++\x{c1}
                    893:     !\x{c0}+++++ 
                    894:  0: \x{c0}++
                    895: 
                    896: /-- Without PCRE_UCP, non-ASCII always fail, even if < 256  --/
                    897: 
                    898: /\b...\B/8
                    899:     abc_
                    900:  0: abc
                    901:     ** Failers 
                    902:  0: Fai
                    903:     \x{37e}abc\x{376} 
1.1       misho     904: No match
1.1.1.2   misho     905:     \x{37e}\x{376}\x{371}\x{393}\x{394} 
1.1       misho     906: No match
1.1.1.2   misho     907:     !\x{c0}++\x{c1}\x{c2} 
1.1       misho     908: No match
1.1.1.2   misho     909:     !\x{c0}+++++ 
1.1       misho     910: No match
                    911: 
1.1.1.2   misho     912: /-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties  --/
1.1       misho     913: 
1.1.1.2   misho     914: /\b...\B/W
                    915:     abc_
1.1       misho     916:  0: abc
1.1.1.2   misho     917:     !\x{c0}++\x{c1}\x{c2} 
                    918:  0: ++\xc1
                    919:     !\x{c0}+++++ 
                    920:  0: \xc0++
1.1       misho     921: 
1.1.1.2   misho     922: /-- Some of these are silly, but they check various combinations --/
1.1       misho     923: 
1.1.1.2   misho     924: /[[:^alpha:][:^cntrl:]]+/8WBZ
                    925: ------------------------------------------------------------------
                    926:         Bra
                    927:         [ -~\x80-\xff\P{L}]+
                    928:         Ket
                    929:         End
                    930: ------------------------------------------------------------------
                    931:     123
                    932:  0: 123
                    933:     abc 
1.1       misho     934:  0: abc
                    935: 
1.1.1.2   misho     936: /[[:^cntrl:][:^alpha:]]+/8WBZ
                    937: ------------------------------------------------------------------
                    938:         Bra
                    939:         [ -~\x80-\xff\P{L}]+
                    940:         Ket
                    941:         End
                    942: ------------------------------------------------------------------
                    943:     123
                    944:  0: 123
                    945:     abc 
1.1       misho     946:  0: abc
                    947: 
1.1.1.2   misho     948: /[[:alpha:]]+/8WBZ
                    949: ------------------------------------------------------------------
                    950:         Bra
                    951:         [\p{L}]+
                    952:         Ket
                    953:         End
                    954: ------------------------------------------------------------------
1.1       misho     955:     abc
                    956:  0: abc
                    957: 
1.1.1.2   misho     958: /[[:^alpha:]\S]+/8WBZ
                    959: ------------------------------------------------------------------
                    960:         Bra
                    961:         [\P{L}\P{Xsp}]+
                    962:         Ket
                    963:         End
                    964: ------------------------------------------------------------------
                    965:     123
                    966:  0: 123
                    967:     abc 
1.1       misho     968:  0: abc
                    969: 
1.1.1.2   misho     970: /[^\d]+/8WBZ
                    971: ------------------------------------------------------------------
                    972:         Bra
                    973:         [^\p{Nd}]+
                    974:         Ket
                    975:         End
                    976: ------------------------------------------------------------------
                    977:     abc123
                    978:  0: abc
                    979:     abc\x{123}
                    980:  0: abc\x{123}
                    981:     \x{660}abc   
                    982:  0: abc
                    983: 
                    984: /\p{Lu}+9\p{Lu}+B\p{Lu}+b/BZ
                    985: ------------------------------------------------------------------
                    986:         Bra
                    987:         prop Lu ++
                    988:         9
                    989:         prop Lu +
                    990:         B
                    991:         prop Lu ++
                    992:         b
                    993:         Ket
                    994:         End
                    995: ------------------------------------------------------------------
                    996: 
                    997: /\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/BZ
                    998: ------------------------------------------------------------------
                    999:         Bra
                   1000:         notprop Lu +
                   1001:         9
                   1002:         notprop Lu ++
                   1003:         B
                   1004:         notprop Lu +
                   1005:         b
                   1006:         Ket
                   1007:         End
                   1008: ------------------------------------------------------------------
                   1009: 
                   1010: /\P{Lu}+9\P{Lu}+B\P{Lu}+b/BZ
                   1011: ------------------------------------------------------------------
                   1012:         Bra
                   1013:         notprop Lu +
                   1014:         9
                   1015:         notprop Lu ++
                   1016:         B
                   1017:         notprop Lu +
                   1018:         b
                   1019:         Ket
                   1020:         End
                   1021: ------------------------------------------------------------------
                   1022: 
                   1023: /\p{Han}+X\p{Greek}+\x{370}/BZ8
                   1024: ------------------------------------------------------------------
                   1025:         Bra
                   1026:         prop Han ++
                   1027:         X
                   1028:         prop Greek +
                   1029:         \x{370}
                   1030:         Ket
                   1031:         End
                   1032: ------------------------------------------------------------------
                   1033: 
                   1034: /\p{Xan}+!\p{Xan}+A/BZ
                   1035: ------------------------------------------------------------------
                   1036:         Bra
                   1037:         prop Xan ++
                   1038:         !
                   1039:         prop Xan +
                   1040:         A
                   1041:         Ket
                   1042:         End
                   1043: ------------------------------------------------------------------
                   1044: 
                   1045: /\p{Xsp}+!\p{Xsp}\t/BZ
                   1046: ------------------------------------------------------------------
                   1047:         Bra
                   1048:         prop Xsp ++
                   1049:         !
                   1050:         prop Xsp
                   1051:         \x09
                   1052:         Ket
                   1053:         End
                   1054: ------------------------------------------------------------------
                   1055: 
                   1056: /\p{Xps}+!\p{Xps}\t/BZ
                   1057: ------------------------------------------------------------------
                   1058:         Bra
                   1059:         prop Xps ++
                   1060:         !
                   1061:         prop Xps
                   1062:         \x09
                   1063:         Ket
                   1064:         End
                   1065: ------------------------------------------------------------------
                   1066: 
                   1067: /\p{Xwd}+!\p{Xwd}_/BZ
                   1068: ------------------------------------------------------------------
                   1069:         Bra
                   1070:         prop Xwd ++
                   1071:         !
                   1072:         prop Xwd
                   1073:         _
                   1074:         Ket
                   1075:         End
                   1076: ------------------------------------------------------------------
                   1077: 
                   1078: /A+\p{N}A+\dB+\p{N}*B+\d*/WBZ
                   1079: ------------------------------------------------------------------
                   1080:         Bra
                   1081:         A++
                   1082:         prop N
                   1083:         A++
                   1084:         prop Nd
                   1085:         B+
                   1086:         prop N *+
                   1087:         B+
                   1088:         prop Nd *
                   1089:         Ket
                   1090:         End
                   1091: ------------------------------------------------------------------
                   1092: 
                   1093: /-- These behaved oddly in Perl, so they are kept in this test --/
                   1094: 
                   1095: /(\x{23a}\x{23a}\x{23a})?\1/8i
                   1096:     \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
                   1097: No match
                   1098: 
                   1099: /(ȺȺȺ)?\1/8i
                   1100:     ȺȺȺⱥⱥ
                   1101: No match
                   1102: 
                   1103: /(\x{23a}\x{23a}\x{23a})?\1/8i
                   1104:     \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
                   1105:  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
                   1106:  1: \x{23a}\x{23a}\x{23a}
                   1107: 
                   1108: /(ȺȺȺ)?\1/8i
                   1109:     ȺȺȺⱥⱥⱥ
                   1110:  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
                   1111:  1: \x{23a}\x{23a}\x{23a}
                   1112: 
                   1113: /(\x{23a}\x{23a}\x{23a})\1/8i
                   1114:     \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
                   1115: No match
                   1116: 
                   1117: /(ȺȺȺ)\1/8i
                   1118:     ȺȺȺⱥⱥ
                   1119: No match
                   1120: 
                   1121: /(\x{23a}\x{23a}\x{23a})\1/8i
                   1122:     \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
                   1123:  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
                   1124:  1: \x{23a}\x{23a}\x{23a}
                   1125: 
                   1126: /(ȺȺȺ)\1/8i
                   1127:     ȺȺȺⱥⱥⱥ
                   1128:  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
                   1129:  1: \x{23a}\x{23a}\x{23a}
                   1130: 
                   1131: /(\x{2c65}\x{2c65})\1/8i
                   1132:     \x{2c65}\x{2c65}\x{23a}\x{23a}
                   1133:  0: \x{2c65}\x{2c65}\x{23a}\x{23a}
                   1134:  1: \x{2c65}\x{2c65}
                   1135:     
                   1136: /(ⱥⱥ)\1/8i
                   1137:     ⱥⱥȺȺ 
                   1138:  0: \x{2c65}\x{2c65}\x{23a}\x{23a}
                   1139:  1: \x{2c65}\x{2c65}
                   1140:     
                   1141: /(\x{23a}\x{23a}\x{23a})\1Y/8i
                   1142:     X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ
                   1143:  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}Y
                   1144:  1: \x{23a}\x{23a}\x{23a}
                   1145: 
                   1146: /(\x{2c65}\x{2c65})\1Y/8i
                   1147:     X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ
                   1148:  0: \x{2c65}\x{2c65}\x{23a}\x{23a}Y
                   1149:  1: \x{2c65}\x{2c65}
                   1150: 
                   1151: /-- --/ 
                   1152: 
                   1153: /-- These scripts weren't yet in Perl when I added Unicode 6.0.0 to PCRE --/
                   1154: 
                   1155: /^[\p{Batak}]/8
                   1156:     \x{1bc0}
                   1157:  0: \x{1bc0}
                   1158:     \x{1bff}
                   1159:  0: \x{1bff}
                   1160:     ** Failers
                   1161: No match
                   1162:     \x{1bf4}
                   1163: No match
                   1164:     
                   1165: /^[\p{Brahmi}]/8
                   1166:     \x{11000}
                   1167:  0: \x{11000}
                   1168:     \x{1106f}
                   1169:  0: \x{1106f}
                   1170:     ** Failers
                   1171: No match
                   1172:     \x{1104e}
                   1173: No match
                   1174:     
                   1175: /^[\p{Mandaic}]/8
                   1176:     \x{840}
                   1177:  0: \x{840}
                   1178:     \x{85e}
                   1179:  0: \x{85e}
                   1180:     ** Failers
                   1181: No match
                   1182:     \x{85c}
1.1       misho    1183: No match
1.1.1.2   misho    1184:     \x{85d}    
1.1       misho    1185: No match
                   1186: 
1.1.1.2   misho    1187: /-- --/ 
1.1       misho    1188: 
1.1.1.2   misho    1189: /(\X*)(.)/s8
                   1190:     A\x{300}
                   1191:  0: A
                   1192:  1: 
                   1193:  2: A
1.1       misho    1194: 
1.1.1.2   misho    1195: /^S(\X*)e(\X*)$/8
                   1196:     Stéréo
1.1       misho    1197: No match
                   1198:     
1.1.1.2   misho    1199: /^\X/8 
                   1200:     ́réo
1.1       misho    1201: No match
                   1202: 
1.1.1.2   misho    1203: /^a\X41z/<JS>
                   1204:     aX41z
                   1205:  0: aX41z
                   1206:     *** Failers
1.1       misho    1207: No match
1.1.1.2   misho    1208:     aAz
1.1       misho    1209: No match
                   1210: 
1.1.1.2   misho    1211: /(?<=ab\Cde)X/8
                   1212: Failed: \C not allowed in lookbehind assertion at offset 10
1.1       misho    1213: 
1.1.1.3 ! misho    1214: /\X/
        !          1215:     a\P
        !          1216:  0: a
        !          1217:     a\P\P
        !          1218: Partial match: a
        !          1219: 
        !          1220: /\Xa/
        !          1221:     aa\P
        !          1222:  0: aa
        !          1223:     aa\P\P
        !          1224:  0: aa
        !          1225: 
        !          1226: /\X{2}/
        !          1227:     aa\P
        !          1228:  0: aa
        !          1229:     aa\P\P
        !          1230: Partial match: aa
        !          1231: 
        !          1232: /\X+a/
        !          1233:     a\P
        !          1234: Partial match: a
        !          1235:     aa\P
        !          1236:  0: aa
        !          1237:     aa\P\P
        !          1238: Partial match: aa
        !          1239: 
        !          1240: /\X+?a/
        !          1241:     a\P
        !          1242: Partial match: a
        !          1243:     ab\P
        !          1244: Partial match: ab
        !          1245:     aa\P
        !          1246:  0: aa
        !          1247:     aa\P\P
        !          1248:  0: aa
        !          1249:     aba\P
        !          1250:  0: aba
        !          1251:     
        !          1252: /-- These Unicode 6.1.0 scripts are not known to Perl. --/ 
        !          1253: 
        !          1254: /\p{Chakma}\d/8W
        !          1255:     \x{11100}\x{1113c}
        !          1256:  0: \x{11100}\x{1113c}
        !          1257: 
        !          1258: /\p{Takri}\d/8W
        !          1259:     \x{11680}\x{116c0}
        !          1260:  0: \x{11680}\x{116c0}
        !          1261: 
        !          1262: /^\X/8
        !          1263:     A\P
        !          1264:  0: A
        !          1265:     A\P\P 
        !          1266: Partial match: A
        !          1267:     A\x{300}\x{301}\P
        !          1268:  0: A\x{300}\x{301}
        !          1269:     A\x{300}\x{301}\P\P  
        !          1270: Partial match: A\x{300}\x{301}
        !          1271:     A\x{301}\P
        !          1272:  0: A\x{301}
        !          1273:     A\x{301}\P\P  
        !          1274: Partial match: A\x{301}
        !          1275:     
        !          1276: /^\X{2,3}/8
        !          1277:     A\P
        !          1278: Partial match: A
        !          1279:     A\P\P 
        !          1280: Partial match: A
        !          1281:     AA\P
        !          1282:  0: AA
        !          1283:     AA\P\P  
        !          1284: Partial match: AA
        !          1285:     A\x{300}\x{301}\P
        !          1286: Partial match: A\x{300}\x{301}
        !          1287:     A\x{300}\x{301}\P\P  
        !          1288: Partial match: A\x{300}\x{301}
        !          1289:     A\x{300}\x{301}A\x{300}\x{301}\P
        !          1290:  0: A\x{300}\x{301}A\x{300}\x{301}
        !          1291:     A\x{300}\x{301}A\x{300}\x{301}\P\P  
        !          1292: Partial match: A\x{300}\x{301}A\x{300}\x{301}
        !          1293: 
        !          1294: /^\X{2}/8
        !          1295:     AA\P
        !          1296:  0: AA
        !          1297:     AA\P\P  
        !          1298: Partial match: AA
        !          1299:     A\x{300}\x{301}A\x{300}\x{301}\P
        !          1300:  0: A\x{300}\x{301}A\x{300}\x{301}
        !          1301:     A\x{300}\x{301}A\x{300}\x{301}\P\P  
        !          1302: Partial match: A\x{300}\x{301}A\x{300}\x{301}
        !          1303:     
        !          1304: /^\X+/8
        !          1305:     AA\P
        !          1306:  0: AA
        !          1307:     AA\P\P  
        !          1308: Partial match: AA
        !          1309: 
        !          1310: /^\X+?Z/8
        !          1311:     AA\P
        !          1312: Partial match: AA
        !          1313:     AA\P\P 
        !          1314: Partial match: AA
        !          1315: 
1.1       misho    1316: /-- End of testinput7 --/

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>