Janis Danisevskis | 53e448c | 2016-03-31 13:35:25 +0100 | [diff] [blame] | 1 | # There are two sorts of patterns in this test. A number of them are |
| 2 | # representative patterns whose lengths and offsets are checked. This is just a |
| 3 | # doublecheck test to ensure the sizes don't go horribly wrong when something |
| 4 | # is changed. The operation of these patterns is checked in other tests. |
| 5 | # |
| 6 | # This file also contains tests whose output varies with code unit size and/or |
| 7 | # link size. Unicode support is required for these tests. There are separate |
| 8 | # output files for each code unit size and link size. |
| 9 | |
| 10 | #pattern fullbincode,memory |
| 11 | |
| 12 | /((?i)b)/ |
| 13 | |
| 14 | /(?s)(.*X|^B)/ |
| 15 | |
| 16 | /(?s:.*X|^B)/ |
| 17 | |
| 18 | /^[[:alnum:]]/ |
| 19 | |
| 20 | /#/Ix |
| 21 | |
| 22 | /a#/Ix |
| 23 | |
| 24 | /x?+/ |
| 25 | |
| 26 | /x++/ |
| 27 | |
| 28 | /x{1,3}+/ |
| 29 | |
| 30 | /(x)*+/ |
| 31 | |
| 32 | /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/ |
| 33 | |
| 34 | "8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" |
| 35 | |
| 36 | "\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" |
| 37 | |
| 38 | /(a(?1)b)/ |
| 39 | |
| 40 | /(a(?1)+b)/ |
| 41 | |
| 42 | /a(?P<name1>b|c)d(?P<longername2>e)/ |
| 43 | |
| 44 | /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/ |
| 45 | |
| 46 | /(?P<a>a)...(?P=a)bbb(?P>a)d/ |
| 47 | |
| 48 | /abc(?C255)de(?C)f/ |
| 49 | |
| 50 | /abcde/auto_callout |
| 51 | |
| 52 | /\x{100}/utf |
| 53 | |
| 54 | /\x{1000}/utf |
| 55 | |
| 56 | /\x{10000}/utf |
| 57 | |
| 58 | /\x{100000}/utf |
| 59 | |
| 60 | /\x{10ffff}/utf |
| 61 | |
| 62 | /\x{110000}/utf |
| 63 | |
| 64 | /[\x{ff}]/utf |
| 65 | |
| 66 | /[\x{100}]/utf |
| 67 | |
| 68 | /\x80/utf |
| 69 | |
| 70 | /\xff/utf |
| 71 | |
| 72 | /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf |
| 73 | |
| 74 | /\x{D55c}\x{ad6d}\x{C5B4}/I,utf |
| 75 | |
| 76 | /\x{65e5}\x{672c}\x{8a9e}/I,utf |
| 77 | |
| 78 | /[\x{100}]/utf |
| 79 | |
| 80 | /[Z\x{100}]/utf |
| 81 | |
| 82 | /^[\x{100}\E-\Q\E\x{150}]/utf |
| 83 | |
| 84 | /^[\QĀ\E-\QŐ\E]/utf |
| 85 | |
| 86 | /^[\QĀ\E-\QŐ\E/utf |
| 87 | |
| 88 | /[\p{L}]/ |
| 89 | |
| 90 | /[\p{^L}]/ |
| 91 | |
| 92 | /[\P{L}]/ |
| 93 | |
| 94 | /[\P{^L}]/ |
| 95 | |
| 96 | /[abc\p{L}\x{0660}]/utf |
| 97 | |
| 98 | /[\p{Nd}]/utf |
| 99 | |
| 100 | /[\p{Nd}+-]+/utf |
| 101 | |
| 102 | /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf |
| 103 | |
| 104 | /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf |
| 105 | |
| 106 | /[\x{105}-\x{109}]/i,utf |
| 107 | |
| 108 | /( ( (?(1)0|) )* )/x |
| 109 | |
| 110 | /( (?(1)0|)* )/x |
| 111 | |
| 112 | /[a]/ |
| 113 | |
| 114 | /[a]/utf |
| 115 | |
| 116 | /[\xaa]/ |
| 117 | |
| 118 | /[\xaa]/utf |
| 119 | |
| 120 | /[^a]/ |
| 121 | |
| 122 | /[^a]/utf |
| 123 | |
| 124 | /[^\xaa]/ |
| 125 | |
| 126 | /[^\xaa]/utf |
| 127 | |
| 128 | #pattern -memory |
| 129 | |
| 130 | /[^\d]/utf,ucp |
| 131 | |
| 132 | /[[:^alpha:][:^cntrl:]]+/utf,ucp |
| 133 | |
| 134 | /[[:^cntrl:][:^alpha:]]+/utf,ucp |
| 135 | |
| 136 | /[[:alpha:]]+/utf,ucp |
| 137 | |
| 138 | /[[:^alpha:]\S]+/utf,ucp |
| 139 | |
| 140 | /abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/ |
| 141 | |
| 142 | /(((a\2)|(a*)\g<-1>))*a?/ |
| 143 | |
| 144 | /((?+1)(\1))/ |
| 145 | |
| 146 | "(?1)(?#?'){2}(a)" |
| 147 | |
| 148 | /.((?2)(?R)|\1|$)()/ |
| 149 | |
| 150 | /.((?3)(?R)()(?2)|\1|$)()/ |
| 151 | |
| 152 | /(?1)()((((((\1++))\x85)+)|))/ |
| 153 | |
| 154 | # Check the absolute limit on nesting (?| etc. This varies with code unit |
| 155 | # width because the workspace is a different number of bytes. It will fail |
| 156 | # with link size 2 in 8-bit and 16-bit but not in 32-bit. |
| 157 | |
| 158 | /(?|(?|(?J:(?|(?x:(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?| |
| 159 | ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) |
| 160 | /parens_nest_limit=1000,-fullbincode |
| 161 | |
| 162 | # Use "expand" to create some very long patterns with nested parentheses, in |
| 163 | # order to test workspace overflow. Again, this varies with code unit width, |
Elliott Hughes | 9bc971b | 2018-07-27 13:23:14 -0700 | [diff] [blame] | 164 | # and even when it fails in two modes, the error offset differs. It also varies |
Janis Danisevskis | 53e448c | 2016-03-31 13:35:25 +0100 | [diff] [blame] | 165 | # with link size - hence multiple tests with different values. |
| 166 | |
Elliott Hughes | 9bc971b | 2018-07-27 13:23:14 -0700 | [diff] [blame] | 167 | /(?'ABC'\[[bar](]{792}*THEN:\[A]{255}\[)]{793}/expand,-fullbincode,parens_nest_limit=1000 |
Janis Danisevskis | 53e448c | 2016-03-31 13:35:25 +0100 | [diff] [blame] | 168 | |
Elliott Hughes | 9bc971b | 2018-07-27 13:23:14 -0700 | [diff] [blame] | 169 | /(?'ABC'\[[bar](]{793}*THEN:\[A]{255}\[)]{794}/expand,-fullbincode,parens_nest_limit=1000 |
Janis Danisevskis | 53e448c | 2016-03-31 13:35:25 +0100 | [diff] [blame] | 170 | |
Elliott Hughes | 9bc971b | 2018-07-27 13:23:14 -0700 | [diff] [blame] | 171 | /(?'ABC'\[[bar](]{1793}*THEN:\[A]{255}\[)]{1794}/expand,-fullbincode,parens_nest_limit=2000 |
Janis Danisevskis | 53e448c | 2016-03-31 13:35:25 +0100 | [diff] [blame] | 172 | |
| 173 | /(?(1)(?1)){8,}+()/debug |
| 174 | abcd |
| 175 | |
| 176 | /(?(1)|a(?1)b){2,}+()/debug |
| 177 | abcde |
| 178 | |
| 179 | /((?1)(?2)(?3)(?4)(?5)(?6)(?7)(?8)(?9)(?9)(?8)(?7)(?6)(?5)(?4)(?3)(?2)(?1)(?0)){2,}()()()()()()()()()/debug |
| 180 | |
Janis Danisevskis | 8b979b2 | 2016-08-15 16:09:16 +0100 | [diff] [blame] | 181 | /([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ |
| 182 | |
| 183 | /([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/-fullbincode |
| 184 | |
Elliott Hughes | 2dbd7d2 | 2020-06-03 14:32:37 -0700 | [diff] [blame] | 185 | #pattern -fullbincode |
| 186 | |
| 187 | /\[()]{65535}/expand |
| 188 | |
Janis Danisevskis | 53e448c | 2016-03-31 13:35:25 +0100 | [diff] [blame] | 189 | # End of testinput8 |