Annotation of embedaddon/pcre/testdata/testinput17, revision 1.1.1.4

1.1.1.3   misho       1: /-- This set of tests is for the 16- and 32-bit library's basic (non-UTF-16 
                      2:     or -32) features that are not compatible with the 8-bit library, or which 
                      3:     give different output in 16- or 32-bit mode. --/
1.1.1.4 ! misho       4:     
        !             5: < forbid 8W 
1.1       misho       6: 
                      7: /a\Cb/
                      8:     aXb
                      9:     a\nb
                     10:   
                     11: /[^\x{c4}]/DZ
                     12:   
                     13: /\x{100}/I
                     14: 
                     15: /  (?: [\040\t] |  \(
                     16: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                     17: \)  )*                          # optional leading comment
                     18: (?:    (?:
                     19: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                     20: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                     21: |
                     22: " (?:                      # opening quote...
                     23: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                     24: |                     #    or
                     25: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                     26: )* "  # closing quote
                     27: )                    # initial word
                     28: (?:  (?: [\040\t] |  \(
                     29: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                     30: \)  )*  \.  (?: [\040\t] |  \(
                     31: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                     32: \)  )*   (?:
                     33: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                     34: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                     35: |
                     36: " (?:                      # opening quote...
                     37: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                     38: |                     #    or
                     39: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                     40: )* "  # closing quote
                     41: )  )* # further okay, if led by a period
                     42: (?: [\040\t] |  \(
                     43: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                     44: \)  )*  @  (?: [\040\t] |  \(
                     45: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                     46: \)  )*    (?:
                     47: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                     48: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                     49: |   \[                         # [
                     50: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                     51: \]                        #           ]
                     52: )                           # initial subdomain
                     53: (?:                                  #
                     54: (?: [\040\t] |  \(
                     55: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                     56: \)  )*  \.                        # if led by a period...
                     57: (?: [\040\t] |  \(
                     58: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                     59: \)  )*   (?:
                     60: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                     61: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                     62: |   \[                         # [
                     63: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                     64: \]                        #           ]
                     65: )                     #   ...further okay
                     66: )*
                     67: # address
                     68: |                     #  or
                     69: (?:
                     70: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                     71: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                     72: |
                     73: " (?:                      # opening quote...
                     74: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                     75: |                     #    or
                     76: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                     77: )* "  # closing quote
                     78: )             # one word, optionally followed by....
                     79: (?:
                     80: [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
                     81: \(
                     82: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                     83: \)       |  # comments, or...
                     84: 
                     85: " (?:                      # opening quote...
                     86: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                     87: |                     #    or
                     88: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                     89: )* "  # closing quote
                     90: # quoted strings
                     91: )*
                     92: <  (?: [\040\t] |  \(
                     93: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                     94: \)  )*                     # leading <
                     95: (?:  @  (?: [\040\t] |  \(
                     96: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                     97: \)  )*    (?:
                     98: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                     99: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                    100: |   \[                         # [
                    101: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                    102: \]                        #           ]
                    103: )                           # initial subdomain
                    104: (?:                                  #
                    105: (?: [\040\t] |  \(
                    106: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    107: \)  )*  \.                        # if led by a period...
                    108: (?: [\040\t] |  \(
                    109: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    110: \)  )*   (?:
                    111: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                    112: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                    113: |   \[                         # [
                    114: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                    115: \]                        #           ]
                    116: )                     #   ...further okay
                    117: )*
                    118: 
                    119: (?:  (?: [\040\t] |  \(
                    120: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    121: \)  )*  ,  (?: [\040\t] |  \(
                    122: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    123: \)  )*  @  (?: [\040\t] |  \(
                    124: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    125: \)  )*    (?:
                    126: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                    127: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                    128: |   \[                         # [
                    129: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                    130: \]                        #           ]
                    131: )                           # initial subdomain
                    132: (?:                                  #
                    133: (?: [\040\t] |  \(
                    134: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    135: \)  )*  \.                        # if led by a period...
                    136: (?: [\040\t] |  \(
                    137: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    138: \)  )*   (?:
                    139: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                    140: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                    141: |   \[                         # [
                    142: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                    143: \]                        #           ]
                    144: )                     #   ...further okay
                    145: )*
                    146: )* # further okay, if led by comma
                    147: :                                # closing colon
                    148: (?: [\040\t] |  \(
                    149: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    150: \)  )*  )? #       optional route
                    151: (?:
                    152: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                    153: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                    154: |
                    155: " (?:                      # opening quote...
                    156: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                    157: |                     #    or
                    158: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                    159: )* "  # closing quote
                    160: )                    # initial word
                    161: (?:  (?: [\040\t] |  \(
                    162: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    163: \)  )*  \.  (?: [\040\t] |  \(
                    164: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    165: \)  )*   (?:
                    166: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                    167: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                    168: |
                    169: " (?:                      # opening quote...
                    170: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                    171: |                     #    or
                    172: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                    173: )* "  # closing quote
                    174: )  )* # further okay, if led by a period
                    175: (?: [\040\t] |  \(
                    176: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    177: \)  )*  @  (?: [\040\t] |  \(
                    178: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    179: \)  )*    (?:
                    180: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                    181: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                    182: |   \[                         # [
                    183: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                    184: \]                        #           ]
                    185: )                           # initial subdomain
                    186: (?:                                  #
                    187: (?: [\040\t] |  \(
                    188: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    189: \)  )*  \.                        # if led by a period...
                    190: (?: [\040\t] |  \(
                    191: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    192: \)  )*   (?:
                    193: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                    194: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                    195: |   \[                         # [
                    196: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                    197: \]                        #           ]
                    198: )                     #   ...further okay
                    199: )*
                    200: #       address spec
                    201: (?: [\040\t] |  \(
                    202: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    203: \)  )*  > #                  trailing >
                    204: # name and address
                    205: )  (?: [\040\t] |  \(
                    206: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    207: \)  )*                       # optional trailing comment
                    208: /xSI
                    209: 
                    210: /[\h]/BZ
                    211:     >\x09<
                    212: 
                    213: /[\h]+/BZ
                    214:     >\x09\x20\xa0<
                    215: 
                    216: /[\v]/BZ
                    217: 
                    218: /[^\h]/BZ
                    219: 
                    220: /\h+/SI
                    221:     \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
                    222:     \x{3001}\x{2fff}\x{200a}\xa0\x{2000}
                    223: 
                    224: /[\h\x{dc00}]+/BZSI
                    225:     \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
                    226:     \x{3001}\x{2fff}\x{200a}\xa0\x{2000}
                    227: 
                    228: /\H+/SI
                    229:     \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
                    230:     \x{2000}\x{200a}\x{1fff}\x{200b}
                    231:     \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
                    232:     \xa0\x{3000}\x9f\xa1\x{2fff}\x{3001}
                    233: 
1.1.1.3   misho     234: /[\H\x{d800}]+/
1.1       misho     235:     \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
                    236:     \x{2000}\x{200a}\x{1fff}\x{200b}
                    237:     \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
                    238:     \xa0\x{3000}\x9f\xa1\x{2fff}\x{3001}
                    239: 
                    240: /\v+/SI
                    241:     \x{2027}\x{2030}\x{2028}\x{2029}
                    242:     \x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d
                    243: 
                    244: /[\v\x{dc00}]+/BZSI
                    245:     \x{2027}\x{2030}\x{2028}\x{2029}
                    246:     \x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d
                    247: 
                    248: /\V+/SI
                    249:     \x{2028}\x{2029}\x{2027}\x{2030}
                    250:     \x85\x0a\x0b\x0c\x0d\x09\x0e\x84\x86
                    251: 
1.1.1.3   misho     252: /[\V\x{d800}]+/
1.1       misho     253:     \x{2028}\x{2029}\x{2027}\x{2030}
                    254:     \x85\x0a\x0b\x0c\x0d\x09\x0e\x84\x86
                    255: 
                    256: /\R+/SI<bsr_unicode>
                    257:     \x{2027}\x{2030}\x{2028}\x{2029}
                    258:     \x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d
                    259: 
                    260: /\x{d800}\x{d7ff}\x{dc00}\x{dc00}\x{dcff}\x{dd00}/I
                    261:     \x{d800}\x{d7ff}\x{dc00}\x{dc00}\x{dcff}\x{dd00}
                    262: 
1.1.1.2   misho     263: /[^\x{80}][^\x{ff}][^\x{100}][^\x{1000}][^\x{ffff}]/BZ
                    264: 
                    265: /[^\x{80}][^\x{ff}][^\x{100}][^\x{1000}][^\x{ffff}]/BZi
                    266: 
                    267: /[^\x{100}]*[^\x{1000}]+[^\x{ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{100}]{5,6}+/BZ
                    268: 
                    269: /[^\x{100}]*[^\x{1000}]+[^\x{ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{100}]{5,6}+/BZi
                    270: 
                    271: /(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF)XX/K
                    272:     XX
                    273:      
                    274: /(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE)XX/K
                    275:     XX
                    276: 
                    277: /\u0100/<JS>BZ
                    278: 
                    279: /[\u0100-\u0200]/<JS>BZ
                    280: 
                    281: /\ud800/<JS>BZ
                    282: 
1.1.1.3   misho     283: /^\x{ffff}+/i
                    284:     \x{ffff}
                    285: 
                    286: /^\x{ffff}?/i
                    287:     \x{ffff}
                    288: 
                    289: /^\x{ffff}*/i
                    290:     \x{ffff}
                    291: 
                    292: /^\x{ffff}{3}/i
                    293:     \x{ffff}\x{ffff}\x{ffff}
                    294: 
                    295: /^\x{ffff}{0,3}/i
                    296:     \x{ffff}
                    297: 
1.1.1.4 ! misho     298: /[^\x00-a]{12,}[^b-\xff]*/BZ
        !           299: 
        !           300: /[^\s]*\s* [^\W]+\W+ [^\d]*?\d0 [^\d\w]{4,6}?\w*A/BZ
        !           301: 
        !           302: /a*[b-\x{200}]?a#a*[b-\x{200}]?b#[a-f]*[g-\x{200}]*#[g-\x{200}]*[a-c]*#[g-\x{200}]*[a-h]*/BZ
        !           303: 
        !           304: /^[\x{1234}\x{4321}]{2,4}?/
        !           305:     \x{1234}\x{1234}\x{1234}
        !           306: 
1.1       misho     307: /-- End of testinput17 --/

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