Annotation of embedaddon/pcre/testdata/testoutput13, revision 1.1

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

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