Home | History | Annotate | Download | only in testdata
      1 # This set of tests is for the 16-bit and 32-bit libraries' basic (non-UTF)
      2 # features that are not compatible with the 8-bit library, or which give
      3 # different output in 16-bit or 32-bit mode. The output for the two widths is
      4 # different, so they have separate output files.
      5     
      6 #forbid_utf
      7 #newline_default LF ANY ANYCRLF
      8 
      9 /[^\x{c4}]/IB
     10 ------------------------------------------------------------------
     11         Bra
     12         [^\x{c4}]
     13         Ket
     14         End
     15 ------------------------------------------------------------------
     16 Capturing subpattern count = 0
     17 Subject length lower bound = 1
     18   
     19 /\x{100}/I
     20 Capturing subpattern count = 0
     21 First code unit = \x{100}
     22 Subject length lower bound = 1
     23 
     24 /  (?: [\040\t] |  \(
     25 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
     26 \)  )*                          # optional leading comment
     27 (?:    (?:
     28 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
     29 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
     30 |
     31 " (?:                      # opening quote...
     32 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
     33 |                     #    or
     34 \\ [^\x80-\xff]           #   Escaped something (something != CR)
     35 )* "  # closing quote
     36 )                    # initial word
     37 (?:  (?: [\040\t] |  \(
     38 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
     39 \)  )*  \.  (?: [\040\t] |  \(
     40 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
     41 \)  )*   (?:
     42 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
     43 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
     44 |
     45 " (?:                      # opening quote...
     46 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
     47 |                     #    or
     48 \\ [^\x80-\xff]           #   Escaped something (something != CR)
     49 )* "  # closing quote
     50 )  )* # further okay, if led by a period
     51 (?: [\040\t] |  \(
     52 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
     53 \)  )*  @  (?: [\040\t] |  \(
     54 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
     55 \)  )*    (?:
     56 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
     57 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
     58 |   \[                         # [
     59 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
     60 \]                        #           ]
     61 )                           # initial subdomain
     62 (?:                                  #
     63 (?: [\040\t] |  \(
     64 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
     65 \)  )*  \.                        # if led by a period...
     66 (?: [\040\t] |  \(
     67 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
     68 \)  )*   (?:
     69 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
     70 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
     71 |   \[                         # [
     72 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
     73 \]                        #           ]
     74 )                     #   ...further okay
     75 )*
     76 # address
     77 |                     #  or
     78 (?:
     79 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
     80 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
     81 |
     82 " (?:                      # opening quote...
     83 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
     84 |                     #    or
     85 \\ [^\x80-\xff]           #   Escaped something (something != CR)
     86 )* "  # closing quote
     87 )             # one word, optionally followed by....
     88 (?:
     89 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
     90 \(
     91 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
     92 \)       |  # comments, or...
     93 
     94 " (?:                      # opening quote...
     95 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
     96 |                     #    or
     97 \\ [^\x80-\xff]           #   Escaped something (something != CR)
     98 )* "  # closing quote
     99 # quoted strings
    100 )*
    101 <  (?: [\040\t] |  \(
    102 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    103 \)  )*                     # leading <
    104 (?:  @  (?: [\040\t] |  \(
    105 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    106 \)  )*    (?:
    107 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    108 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    109 |   \[                         # [
    110 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
    111 \]                        #           ]
    112 )                           # initial subdomain
    113 (?:                                  #
    114 (?: [\040\t] |  \(
    115 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    116 \)  )*  \.                        # if led by a period...
    117 (?: [\040\t] |  \(
    118 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    119 \)  )*   (?:
    120 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    121 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    122 |   \[                         # [
    123 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
    124 \]                        #           ]
    125 )                     #   ...further okay
    126 )*
    127 
    128 (?:  (?: [\040\t] |  \(
    129 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    130 \)  )*  ,  (?: [\040\t] |  \(
    131 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    132 \)  )*  @  (?: [\040\t] |  \(
    133 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    134 \)  )*    (?:
    135 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    136 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    137 |   \[                         # [
    138 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
    139 \]                        #           ]
    140 )                           # initial subdomain
    141 (?:                                  #
    142 (?: [\040\t] |  \(
    143 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    144 \)  )*  \.                        # if led by a period...
    145 (?: [\040\t] |  \(
    146 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    147 \)  )*   (?:
    148 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    149 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    150 |   \[                         # [
    151 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
    152 \]                        #           ]
    153 )                     #   ...further okay
    154 )*
    155 )* # further okay, if led by comma
    156 :                                # closing colon
    157 (?: [\040\t] |  \(
    158 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    159 \)  )*  )? #       optional route
    160 (?:
    161 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    162 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    163 |
    164 " (?:                      # opening quote...
    165 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
    166 |                     #    or
    167 \\ [^\x80-\xff]           #   Escaped something (something != CR)
    168 )* "  # closing quote
    169 )                    # initial word
    170 (?:  (?: [\040\t] |  \(
    171 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    172 \)  )*  \.  (?: [\040\t] |  \(
    173 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    174 \)  )*   (?:
    175 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    176 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    177 |
    178 " (?:                      # opening quote...
    179 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
    180 |                     #    or
    181 \\ [^\x80-\xff]           #   Escaped something (something != CR)
    182 )* "  # closing quote
    183 )  )* # further okay, if led by a period
    184 (?: [\040\t] |  \(
    185 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    186 \)  )*  @  (?: [\040\t] |  \(
    187 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    188 \)  )*    (?:
    189 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    190 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    191 |   \[                         # [
    192 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
    193 \]                        #           ]
    194 )                           # initial subdomain
    195 (?:                                  #
    196 (?: [\040\t] |  \(
    197 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    198 \)  )*  \.                        # if led by a period...
    199 (?: [\040\t] |  \(
    200 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    201 \)  )*   (?:
    202 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    203 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    204 |   \[                         # [
    205 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
    206 \]                        #           ]
    207 )                     #   ...further okay
    208 )*
    209 #       address spec
    210 (?: [\040\t] |  \(
    211 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    212 \)  )*  > #                  trailing >
    213 # name and address
    214 )  (?: [\040\t] |  \(
    215 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    216 \)  )*                       # optional trailing comment
    217 /Ix
    218 Capturing subpattern count = 0
    219 Contains explicit CR or LF match
    220 Options: extended
    221 Starting code units: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8 
    222   9 = ? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ^ _ ` a b c d e 
    223   f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \xff 
    224 Subject length lower bound = 3
    225 
    226 /[\h]/B
    227 ------------------------------------------------------------------
    228         Bra
    229         [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]
    230         Ket
    231         End
    232 ------------------------------------------------------------------
    233     >\x09<
    234  0: \x09
    235 
    236 /[\h]+/B
    237 ------------------------------------------------------------------
    238         Bra
    239         [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]++
    240         Ket
    241         End
    242 ------------------------------------------------------------------
    243     >\x09\x20\xa0<
    244  0: \x09 \xa0
    245 
    246 /[\v]/B
    247 ------------------------------------------------------------------
    248         Bra
    249         [\x0a-\x0d\x85\x{2028}-\x{2029}]
    250         Ket
    251         End
    252 ------------------------------------------------------------------
    253 
    254 /[^\h]/B
    255 ------------------------------------------------------------------
    256         Bra
    257         [^\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]
    258         Ket
    259         End
    260 ------------------------------------------------------------------
    261 
    262 /\h+/I
    263 Capturing subpattern count = 0
    264 Starting code units: \x09 \x20 \xa0 \xff 
    265 Subject length lower bound = 1
    266     \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
    267  0: \x{1680}\x{2000}\x{202f}\x{3000}
    268     \x{3001}\x{2fff}\x{200a}\xa0\x{2000}
    269  0: \x{200a}\xa0\x{2000}
    270 
    271 /[\h\x{dc00}]+/IB
    272 ------------------------------------------------------------------
    273         Bra
    274         [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}\x{dc00}]++
    275         Ket
    276         End
    277 ------------------------------------------------------------------
    278 Capturing subpattern count = 0
    279 Starting code units: \x09 \x20 \xa0 \xff 
    280 Subject length lower bound = 1
    281     \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
    282  0: \x{1680}\x{2000}\x{202f}\x{3000}
    283     \x{3001}\x{2fff}\x{200a}\xa0\x{2000}
    284  0: \x{200a}\xa0\x{2000}
    285 
    286 /\H+/I
    287 Capturing subpattern count = 0
    288 Subject length lower bound = 1
    289     \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
    290  0: \x{167f}\x{1681}\x{180d}\x{180f}
    291     \x{2000}\x{200a}\x{1fff}\x{200b}
    292  0: \x{1fff}\x{200b}
    293     \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
    294  0: \x{202e}\x{2030}\x{205e}\x{2060}
    295     \xa0\x{3000}\x9f\xa1\x{2fff}\x{3001}
    296  0: \x9f\xa1\x{2fff}\x{3001}
    297 
    298 /[\H\x{d800}]+/
    299     \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
    300  0: \x{167f}\x{1681}\x{180d}\x{180f}
    301     \x{2000}\x{200a}\x{1fff}\x{200b}
    302  0: \x{1fff}\x{200b}
    303     \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
    304  0: \x{202e}\x{2030}\x{205e}\x{2060}
    305     \xa0\x{3000}\x9f\xa1\x{2fff}\x{3001}
    306  0: \x9f\xa1\x{2fff}\x{3001}
    307 
    308 /\v+/I
    309 Capturing subpattern count = 0
    310 Starting code units: \x0a \x0b \x0c \x0d \x85 \xff 
    311 Subject length lower bound = 1
    312     \x{2027}\x{2030}\x{2028}\x{2029}
    313  0: \x{2028}\x{2029}
    314     \x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d
    315  0: \x85\x0a\x0b\x0c\x0d
    316 
    317 /[\v\x{dc00}]+/IB
    318 ------------------------------------------------------------------
    319         Bra
    320         [\x0a-\x0d\x85\x{2028}-\x{2029}\x{dc00}]++
    321         Ket
    322         End
    323 ------------------------------------------------------------------
    324 Capturing subpattern count = 0
    325 Starting code units: \x0a \x0b \x0c \x0d \x85 \xff 
    326 Subject length lower bound = 1
    327     \x{2027}\x{2030}\x{2028}\x{2029}
    328  0: \x{2028}\x{2029}
    329     \x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d
    330  0: \x85\x0a\x0b\x0c\x0d
    331 
    332 /\V+/I
    333 Capturing subpattern count = 0
    334 Subject length lower bound = 1
    335     \x{2028}\x{2029}\x{2027}\x{2030}
    336  0: \x{2027}\x{2030}
    337     \x85\x0a\x0b\x0c\x0d\x09\x0e\x84\x86
    338  0: \x09\x0e\x84\x86
    339 
    340 /[\V\x{d800}]+/
    341     \x{2028}\x{2029}\x{2027}\x{2030}
    342  0: \x{2027}\x{2030}
    343     \x85\x0a\x0b\x0c\x0d\x09\x0e\x84\x86
    344  0: \x09\x0e\x84\x86
    345 
    346 /\R+/I,bsr=unicode
    347 Capturing subpattern count = 0
    348 \R matches any Unicode newline
    349 Starting code units: \x0a \x0b \x0c \x0d \x85 \xff 
    350 Subject length lower bound = 1
    351     \x{2027}\x{2030}\x{2028}\x{2029}
    352  0: \x{2028}\x{2029}
    353     \x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d
    354  0: \x85\x0a\x0b\x0c\x0d
    355 
    356 /\x{d800}\x{d7ff}\x{dc00}\x{dc00}\x{dcff}\x{dd00}/I
    357 Capturing subpattern count = 0
    358 First code unit = \x{d800}
    359 Last code unit = \x{dd00}
    360 Subject length lower bound = 6
    361     \x{d800}\x{d7ff}\x{dc00}\x{dc00}\x{dcff}\x{dd00}
    362  0: \x{d800}\x{d7ff}\x{dc00}\x{dc00}\x{dcff}\x{dd00}
    363 
    364 /[^\x{80}][^\x{ff}][^\x{100}][^\x{1000}][^\x{ffff}]/B
    365 ------------------------------------------------------------------
    366         Bra
    367         [^\x{80}]
    368         [^\x{ff}]
    369         [^\x{100}]
    370         [^\x{1000}]
    371         [^\x{ffff}]
    372         Ket
    373         End
    374 ------------------------------------------------------------------
    375 
    376 /[^\x{80}][^\x{ff}][^\x{100}][^\x{1000}][^\x{ffff}]/Bi
    377 ------------------------------------------------------------------
    378         Bra
    379      /i [^\x{80}]
    380      /i [^\x{ff}]
    381      /i [^\x{100}]
    382      /i [^\x{1000}]
    383      /i [^\x{ffff}]
    384         Ket
    385         End
    386 ------------------------------------------------------------------
    387 
    388 /[^\x{100}]*[^\x{1000}]+[^\x{ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{100}]{5,6}+/B
    389 ------------------------------------------------------------------
    390         Bra
    391         [^\x{100}]*
    392         [^\x{1000}]+
    393         [^\x{ffff}]??
    394         [^\x{8000}]{4}
    395         [^\x{8000}]*
    396         [^\x{7fff}]{2}
    397         [^\x{7fff}]{0,7}?
    398         [^\x{100}]{5}
    399         [^\x{100}]?+
    400         Ket
    401         End
    402 ------------------------------------------------------------------
    403 
    404 /[^\x{100}]*[^\x{1000}]+[^\x{ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{100}]{5,6}+/Bi
    405 ------------------------------------------------------------------
    406         Bra
    407      /i [^\x{100}]*
    408      /i [^\x{1000}]+
    409      /i [^\x{ffff}]??
    410      /i [^\x{8000}]{4}
    411      /i [^\x{8000}]*
    412      /i [^\x{7fff}]{2}
    413      /i [^\x{7fff}]{0,7}?
    414      /i [^\x{100}]{5}
    415      /i [^\x{100}]?+
    416         Ket
    417         End
    418 ------------------------------------------------------------------
    419 
    420 /(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF)XX/mark
    421     XX
    422  0: XX
    423 MK: 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
    424      
    425 /(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE)XX/mark
    426     XX
    427  0: XX
    428 MK: 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE
    429 
    430 /\u0100/B,alt_bsux,allow_empty_class,match_unset_backref
    431 ------------------------------------------------------------------
    432         Bra
    433         \x{100}
    434         Ket
    435         End
    436 ------------------------------------------------------------------
    437 
    438 /[\u0100-\u0200]/B,alt_bsux,allow_empty_class,match_unset_backref
    439 ------------------------------------------------------------------
    440         Bra
    441         [\x{100}-\x{200}]
    442         Ket
    443         End
    444 ------------------------------------------------------------------
    445 
    446 /\ud800/B,alt_bsux,allow_empty_class,match_unset_backref
    447 ------------------------------------------------------------------
    448         Bra
    449         \x{d800}
    450         Ket
    451         End
    452 ------------------------------------------------------------------
    453 
    454 /^\x{ffff}+/i
    455     \x{ffff}
    456  0: \x{ffff}
    457 
    458 /^\x{ffff}?/i
    459     \x{ffff}
    460  0: \x{ffff}
    461 
    462 /^\x{ffff}*/i
    463     \x{ffff}
    464  0: \x{ffff}
    465 
    466 /^\x{ffff}{3}/i
    467     \x{ffff}\x{ffff}\x{ffff}
    468  0: \x{ffff}\x{ffff}\x{ffff}
    469 
    470 /^\x{ffff}{0,3}/i
    471     \x{ffff}
    472  0: \x{ffff}
    473 
    474 /[^\x00-a]{12,}[^b-\xff]*/B
    475 ------------------------------------------------------------------
    476         Bra
    477         [b-\xff] (neg){12,}
    478         [\x00-a] (neg)*+
    479         Ket
    480         End
    481 ------------------------------------------------------------------
    482 
    483 /[^\s]*\s* [^\W]+\W+ [^\d]*?\d0 [^\d\w]{4,6}?\w*A/B
    484 ------------------------------------------------------------------
    485         Bra
    486         [\x00-\x08\x0e-\x1f!-\xff] (neg)*
    487         \s*
    488          
    489         [0-9A-Z_a-z]++
    490         \W+
    491          
    492         [\x00-/:-\xff] (neg)*?
    493         \d
    494         0 
    495         [\x00-/:-@[-^`{-\xff] (neg){4,6}?
    496         \w*
    497         A
    498         Ket
    499         End
    500 ------------------------------------------------------------------
    501 
    502 /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]*/B
    503 ------------------------------------------------------------------
    504         Bra
    505         a*
    506         [b-\xff\x{100}-\x{200}]?+
    507         a#
    508         a*+
    509         [b-\xff\x{100}-\x{200}]?
    510         b#
    511         [a-f]*+
    512         [g-\xff\x{100}-\x{200}]*+
    513         #
    514         [g-\xff\x{100}-\x{200}]*+
    515         [a-c]*+
    516         #
    517         [g-\xff\x{100}-\x{200}]*
    518         [a-h]*+
    519         Ket
    520         End
    521 ------------------------------------------------------------------
    522 
    523 /^[\x{1234}\x{4321}]{2,4}?/
    524     \x{1234}\x{1234}\x{1234}
    525  0: \x{1234}\x{1234}
    526 
    527 # Check maximum non-UTF character size for the 16-bit library.
    528 
    529 /\x{ffff}/
    530     A\x{ffff}B
    531  0: \x{ffff}
    532 
    533 /\x{10000}/
    534 
    535 /\o{20000}/
    536 
    537 # Check maximum character size for the 32-bit library. These will all give
    538 # errors in the 16-bit library.
    539 
    540 /\x{110000}/
    541 
    542 /\x{7fffffff}/
    543 
    544 /\x{80000000}/
    545 
    546 /\x{ffffffff}/
    547 
    548 /\x{100000000}/
    549 Failed: error 134 at offset 12: character code point value in \x{} or \o{} is too large
    550 
    551 /\o{17777777777}/
    552 
    553 /\o{20000000000}/
    554 
    555 /\o{37777777777}/
    556 
    557 /\o{40000000000}/
    558 Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large
    559 
    560 /\x{7fffffff}\x{7fffffff}/I
    561 Capturing subpattern count = 0
    562 First code unit = \x{7fffffff}
    563 Last code unit = \x{7fffffff}
    564 Subject length lower bound = 2
    565 
    566 /\x{80000000}\x{80000000}/I
    567 Capturing subpattern count = 0
    568 First code unit = \x{80000000}
    569 Last code unit = \x{80000000}
    570 Subject length lower bound = 2
    571 
    572 /\x{ffffffff}\x{ffffffff}/I
    573 Capturing subpattern count = 0
    574 First code unit = \x{ffffffff}
    575 Last code unit = \x{ffffffff}
    576 Subject length lower bound = 2
    577 
    578 # Non-UTF characters 
    579 
    580 /.{2,3}/
    581     \x{400000}\x{400001}\x{400002}\x{400003}
    582  0: \x{400000}\x{400001}\x{400002}
    583 
    584 /\x{400000}\x{800000}/IBi
    585 ------------------------------------------------------------------
    586         Bra
    587      /i \x{400000}\x{800000}
    588         Ket
    589         End
    590 ------------------------------------------------------------------
    591 Capturing subpattern count = 0
    592 Options: caseless
    593 First code unit = \x{400000}
    594 Last code unit = \x{800000}
    595 Subject length lower bound = 2
    596 
    597 # Check character ranges 
    598 
    599 /[\H]/IB
    600 ------------------------------------------------------------------
    601         Bra
    602         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{ffffffff}]
    603         Ket
    604         End
    605 ------------------------------------------------------------------
    606 Capturing subpattern count = 0
    607 Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0a \x0b 
    608   \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a 
    609   \x1b \x1c \x1d \x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 
    610   : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ 
    611   _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80 
    612   \x81 \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f 
    613   \x90 \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e 
    614   \x9f \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae 
    615   \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd 
    616   \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc 
    617   \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb 
    618   \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea 
    619   \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 
    620   \xfa \xfb \xfc \xfd \xfe \xff 
    621 Subject length lower bound = 1
    622 
    623 /[\V]/IB
    624 ------------------------------------------------------------------
    625         Bra
    626         [\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{ffffffff}]
    627         Ket
    628         End
    629 ------------------------------------------------------------------
    630 Capturing subpattern count = 0
    631 Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0e 
    632   \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a \x1b \x1c \x1d 
    633   \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > 
    634   ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c 
    635   d e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80 \x81 \x82 
    636   \x83 \x84 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92 
    637   \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1 
    638   \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0 
    639   \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf 
    640   \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce 
    641   \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd 
    642   \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec 
    643   \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb 
    644   \xfc \xfd \xfe \xff 
    645 Subject length lower bound = 1
    646 
    647 /(*THEN:\[A]{65501})/expand
    648 
    649 # We can use pcre2test's utf8_input modifier to create wide pattern characters,
    650 # even though this test is run when UTF is not supported.
    651 
    652 /abz/utf8_input
    653     abz
    654  0: ab\x{7fffffff}z
    655     ab\x{7fffffff}z
    656  0: ab\x{7fffffff}z
    657 
    658 /abz/utf8_input
    659     abz
    660  0: ab\x{ffffffff}z
    661     ab\x{ffffffff}z 
    662  0: ab\x{ffffffff}z
    663 
    664 /abAz/utf8_input
    665     abAz
    666  0: ab\x{80000041}z
    667     ab\x{80000041}z 
    668  0: ab\x{80000041}z
    669 
    670 # End of testinput11
    671