1 # Large number of macros in one regexp (Enhanced BRE)
2 B$H [A-Z]\\d\\s\\?\\d[A-Z]\\{2\\}\\|[A-Z]\\d\\{2\\}\\s\\?\\d[A-Z]\\{2\\}\\|[A-Z]\\{2\\}\\d\\s\\?\\d[A-Z]\\{2\\}\\|[A-Z]\\{2\\}\\d\\{2\\}\\s\\?\\d[A-Z]\\{2\\}\\|[A-Z]\\d[A-Z]\\s\\?\\d[A-Z]\\{2\\}\\|[A-Z]\\{2\\}\\d[A-Z]\\s\\?\\d[A-Z]\\{2\\}\\|[A-Z]\\{3\\}\\s\\?\\d[A-Z]\\{2\\} A12BC (0,5)
3 BH a\{11\}\(b\{2\}c\)\{2\} aaaaaaaaaaabbcbbc (0,17)(14,17)
4 B$H ^!packet [0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\} [0-9]\\+ !packet 127.0.0.1 999 (0,21)
5 B$H ^!pfast [0-9]\\{1,15\\} \\([0-9]\\{1,3\\}\\.\\)\\{3\\}[0-9]\\{1,3\\}\\.[0-9]\\{1,5\\}$ !pfast 1234567890 127.0.0.1.1234 (0,32)(24,26)
6 # Should these match or not?
7 BH \(a\)*-\1b aaa-b NOMATCH
8 BH \(\(.*\)\1\)\{1,\} xxxxxx ESUBREG
9 # Basic string matching
10 BH foobar foobar (0,6)
11 BH SAME xxxfoobarzapzot (3,9)
12 BH aaaa xxaaaaaaaaaaaaaaaaa (2,6)
13 # Test zero length matches
14 BH \(a*\) NULL (0,0)(0,0)
15 BH \(a*\)* NULL (0,0)(0,0)
16 BH \(\(a*\)*\)* NULL (0,0)(0,0)(0,0)
17 BH \(a*bcd\)* aaaaaaaaaaaabcxbcxbcxaabcxaabcx (0,0)(?,?)
18 BH SAME aaaaaaaaaaaabcxbcxbcxaabcxaabc (0,0)(?,?)
19 BH SAME aaaaaaaaaaaabcxbcdbcxaabcxaabc (0,0)(?,?)
20 BH SAME aaaaaaaaaaaabcdbcdbcxaabcxaabc (0,18)(15,18)
21 BH \(a*\)\+ - (0,0)(0,0)
24 # Test for submatch addressing which requires arbitrary lookahead
25 BH \(a*\)aaaaaa aaaaaaaaaaaaaaax (0,15)(0,9)
26 # Test leftmost and longest matching and some tricky submatches
27 BH \(a*\)\(a*\) aaaa (0,4)(0,4)(4,4)
28 BH \(abcd\|abc\)\(d\?\) abcd (0,4)(0,4)(4,4)
29 BH \(abc\|abcd\)\(d\?\) abcd (0,4)(0,4)(4,4)
30 BH \(abc\|abcd\)\(d\?\)e abcde (0,5)(0,4)(4,4)
31 BH \(abcd\|abc\)\(d\?\)e abcde (0,5)(0,4)(4,4)
32 BH a\(bc\|bcd\)\(d\?\) abcd (0,4)(1,4)(4,4)
33 BH a\(bcd\|bc\)\(d\?\) abcd (0,4)(1,4)(4,4)
34 BH a*\(a\?bc\|bcd\)\(d\?\) aaabcd (0,6)(3,6)(6,6)
35 BH a*\(bcd\|a\?bc\)\(d\?\) aaabcd (0,6)(3,6)(6,6)
36 BH \(a\|\(a*b*\)\)* NULL (0,0)(0,0)(0,0)
37 BH SAME a (0,1)(0,1)(?,?)
38 BH SAME aa (0,2)(0,2)(0,2)
39 BH SAME aaa (0,3)(0,3)(0,3)
40 BH SAME bbb (0,3)(0,3)(0,3)
41 BH SAME aaabbb (0,6)(0,6)(0,6)
42 BH SAME bbbaaa (0,6)(3,6)(3,6)
43 BH \(\(a*b*\)\|a\)* NULL (0,0)(0,0)(0,0)
44 BH SAME a (0,1)(0,1)(0,1)
45 BH SAME aa (0,2)(0,2)(0,2)
46 BH SAME aaa (0,3)(0,3)(0,3)
47 BH SAME bbb (0,3)(0,3)(0,3)
48 BH SAME aaabbb (0,6)(0,6)(0,6)
49 BH SAME bbbaaa (0,6)(3,6)(3,6)
50 BH a.*\(.*b.*\(.*c.*\).*d.*\).*e.*\(.*f.*\).*g aabbccddeeffgg (0,14)(3,9)(5,7)(11,13)
51 BH \(wee\|week\)\(night\|knights\)s* weeknights (0,10)(0,4)(4,9)
52 BH SAME weeknightss (0,11)(0,4)(4,9)
53 BH a* aaaaaaaaaa (0,10)
54 BH aa* aaaaaaaaaa (0,10)
55 BH aaa* aaaaaaaaaa (0,10)
56 BH aaaa* aaaaaaaaaa (0,10)
57 # Test clearing old submatch data with nesting parentheses and iteration
58 BH \(\(a\)\|\(b\)\)*c aaabc (0,5)(3,4)(?,?)(3,4)
59 BH SAME aaaac (0,5)(3,4)(3,4)(?,?)
60 BH foo\(\(bar\)*\)*zot foozot (0,6)(3,3)(?,?)
61 BH SAME foobarzot (0,9)(3,6)(3,6)
62 BH SAME foobarbarzot (0,12)(3,9)(6,9)
63 BH foo\(\(zup\)*\|\(bar\)*\|\(zap\)*\)*zot foobarzapzot (0,12)(6,9)(?,?)(?,?)(6,9)
64 BH SAME foobarbarzapzot (0,15)(9,12)(?,?)(?,?)(9,12)
65 BH SAME foozupzot (0,9)(3,6)(3,6)(?,?)(?,?)
66 BH SAME foobarzot (0,9)(3,6)(?,?)(3,6)(?,?)
67 BH SAME foozapzot (0,9)(3,6)(?,?)(?,?)(3,6)
68 BH SAME foozot (0,6)(3,3)(?,?)(?,?)(?,?)
69 # Test case where, e.g., Perl and Python regexp functions, and many
70 # other backtracking matchers, fail to produce the longest match.
71 # It is not exactly a bug since Perl does not claim to find the
72 # longest match, but a confusing feature and, in my opinion, a bad
73 # design choice because the union operator is traditionally defined
74 # to be commutative (with respect to the language denoted by the RE). */
75 BH \(a\|ab\)\(blip\)\? ablip (0,5)(0,1)(1,5)
76 BH SAME ab (0,2)(0,2)(?,?)
77 BH \(ab\|a\)\(blip\)\? ablip (0,5)(0,1)(1,5)
78 BH SAME ab (0,2)(0,2)(?,?)
79 BH \(\(a\|b\)*\)a\(a\|b\)* aaaaabaaaba (0,11)(0,10)(9,10)(?,?)
80 BH SAME aaaaabaaab (0,10)(0,8)(7,8)(9,10)
81 BH SAME caa (1,3)(1,2)(1,2)(?,?)
82 BH \(\(a\|aba\)*\)\(ababbaba\)\(\(a\|b\)*\) aabaababbabaaababbab (0,20)(0,4)(1,4)(4,12)(12,20)(19,20)
83 BH SAME aaaaababbaba (0,12)(0,4)(3,4)(4,12)(12,12)(?,?)
84 BH \(\(a\|aba\|abb\|bba\|bab\)*\)\(ababbababbabbbabbbbbbabbaba\)\(\(a\|b\)*\) aabaabbbbabababaababbababbabbbabbbbbbabbabababbababababbabababa (0,63)(0,16)(13,16)(16,43)(43,63)(62,63)
85 # Test for empty subexpressions
88 #E SAME NULL (0,0)(0,0)
91 #E SAME NULL (0,0)(0,0)
99 BH \(a*\)b\(c*\) abc (0,3)(0,1)(2,3)
100 BH SAME ***abc*** (3,6)(3,4)(5,6)
101 BH \(a\) a (0,1)(0,1)
102 BH \(\(a\)\) a (0,1)(0,1)(0,1)
103 BH \(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(a\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\) a (0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)
104 BH ksntoeaiksntoeaikstneoaiksnteoaiksntoeaiskntoeaiskntoekainstoeiaskntoeakisntoeksaitnokesantiksoentaikosentaiksoentaiksnoeaisknteoaksintoekasitnoeksaitkosetniaksoetnaisknoetakistoeksintokesanitksoentaisknoetaisknoetiaksotneaikstoekasitoeskatioksentaiksoenatiksoetnaiksonateiksoteaeskanotisknetaiskntoeasknitoskenatiskonetaisknoteai x NOMATCH
105 BH \(\(aab\)\|\(aac\)\|\(aa*\)\)c aabc (0,4)(0,3)(0,3)(?,?)(?,?)
106 BH SAME aacc (0,4)(0,3)(?,?)(0,3)(?,?)
107 BH SAME aaac (0,4)(0,3)(?,?)(?,?)(0,3)
108 BH ^\(\([^!]\+!\)\?\([^!]\+\)\|.\+!\([^!]\+!\)\([^!]\+\)\)$ foo!bar!bas (0,11)(0,11)(?,?)(?,?)(4,8)(8,11)
109 # For BRE, the first $ is not magic
110 #E ^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$ foo!bar!bas (0,11)(?,?)(?,?)(4,8)(8,11)
111 BH ^\(\([^!]\+!\)\?\([^!]\+\)\|.\+!\([^!]\+!\)\([^!]\+\)\)$ foo!bar!bas (0,11)(0,11)(?,?)(?,?)(4,8)(8,11)
112 BH M[ou]'\?am\+[ae]r .*\([AEae]l[- ]\)\?[GKQ]h\?[aeu]\+\([dtz][dhz]\?\)\+af[iy] Muammar Quathafi (0,16)(?,?)(11,13)
113 BHi \(Ab\|cD\)* aBcD (0,4)(2,4)
120 BH a\{1,2\}* NULL BADRPT
121 BH a\{1,2\}\+ a+ (0,2)
122 # Many of the following tests were mostly inspired by (or copied from) the
123 # libhackerlab posix test suite by Tom Lord
145 # Test bracket expressions
181 BH x[^abc] xa NOMATCH
182 BH x[^abc] xb NOMATCH
183 BH x[^abc] xc NOMATCH
185 BH [()+?*\]\+ x\*?+()x (1,7)
186 # Standard character classes
187 BH [[:alnum:]]\+ %abc123890XYZ= (1,13)
188 BH$ [[:cntrl:]]\\+ %\n\t\015\f (1,5)
189 BH [[:lower:]]\+ AbcdE (1,4)
190 BHi [[:lower:]]\+ AbcdE (0,5)
191 BH$ [[:space:]]\\+ x \t\f\nx (1,5)
192 BH [[:alpha:]]\+ %abC123890xyz= (1,4)
193 BH [[:digit:]]\+ %abC123890xyz= (4,10)
194 BH [^[:digit:]]\+ %abC123890xyz= (0,4)
195 BH$ [[:print:]]\\+ \n %abC12\f (1,8)
196 BH$ [[:upper:]]\\+ \n aBCDEFGHIJKLMNOPQRSTUVWXYz (3,27)
197 BHi$ [[:upper:]]\\+ \n aBCDEFGHIJKLMNOPQRSTUVWXYz (2,28)
198 BH$ [[:blank:]]\\+ \na \t b (2,5)
199 BH$ [[:graph:]]\\+ \n %abC12\f (2,8)
200 BH [[:punct:]]\+ a~!@#$%^&*()_+=-`[]{};':"|\,./?>< (1,33)
201 BH [[:xdigit:]]\+ -0123456789ABCDEFabcdef (1,23)
202 BH [[:bogus-character-class-name:] NULL ECTYPE
203 # Range expressions (assuming that the C locale is being used)
204 BH [a-z]\+ ABCabcxyzABC (3,9)
205 BH [z-a]\+ NULL ERANGE
206 BH [a-b-c] NULL ERANGE
207 BH [a-a]\+ zaaaaab (1,6)
208 BH [--Z]\+ !ABC-./XYZ~ (1,10)
211 BH [*--Z]\+ !+*,---ABC (1,7)
212 BH [a-]\+ xa-a--a-ay (1,9)
213 # REG_ICASE and character sets
214 BHi [a-c]* cABbage (0,5)
215 BHi [^a-c]* tObAcCo (0,2)
216 BHi [A-C]* cABbage (0,5)
217 BHi [^A-C]* tObAcCo (0,2)
218 # Complex character sets
219 BH [[:digit:]a-z#$%]\+ __abc#lmn012$x%yz789* (2,20)
220 BHi [[:digit:]a-z#$%]\+ __abcLMN012x%#$yz789* (2,20)
221 BH [^[:digit:]a-z#$%]\+ abc#lmn012$x%yz789--@*,abc (18,23)
222 BHi [^[:digit:]a-z#$%]\+ abc#lmn012$x%yz789--@*,abc (18,23)
223 BHi [^[:digit:]#$%[:xdigit:]]\+ abc#lmn012$x%yz789--@*,abc (4,7)
224 BH [^-]\+ ---afd*(&,ml--- (3,12)
225 BH [^--Z]\+ ---AFD*(&,ml--- (6,12)
226 BHi [^--Z]\+ ---AFD*(&,ml--- (6,10)
227 # Miscellaneous tests
228 BH abc\(\(de\)\(fg\)\)hi xabcdefghiy (1,10)(4,8)(4,6)(6,8)
229 BH abc*def xabdefy (1,6)
230 BH SAME xabcdefy (1,7)
231 BH SAME xabcccccccdefy (1,13)
232 BH abc\(def\)*ghi xabcghiy (1,7)(?,?)
233 BH SAME xabcdefghi (1,10)(4,7)
234 BH SAME xabcdefdefdefghi (1,16)(10,13)
239 # Test anchors and their behaviour with the REG_NEWLINE compilation
240 # flag and the REG_NOTBOL, REG_NOTEOL execution flags.
242 # Normally, `^' matches the empty string at beginning of input.
243 # If REG_NOTBOL is used, `^' won't match the zero length string.
245 BHb SAME abcdef NOMATCH
246 BH SAME xyzabcdef NOMATCH
247 BHb SAME xyzabcdef NOMATCH
248 BH$ SAME \nabcdef NOMATCH
249 BHb$ SAME \nabcdef NOMATCH
250 # Normally, `$' matches the empty string at end of input.
251 # If REG_NOTEOL is used, `$' won't match the zero length string.
253 BHe SAME defabc NOMATCH
254 BH SAME defabcxyz NOMATCH
255 BHe SAME defabcxyz NOMATCH
256 BH$ SAME defabc\n NOMATCH
257 BHe$ SAME defabc\n NOMATCH
261 BHbe SAME abc NOMATCH
262 BH$ SAME \nabc\n NOMATCH
263 BH$ SAME defabc\n NOMATCH
264 BH$ SAME \nabcdef NOMATCH
265 BH SAME abcdef NOMATCH
266 BH SAME defabc NOMATCH
267 BH$ SAME abc\ndef NOMATCH
268 BH$ SAME def\nabc NOMATCH
269 # If REG_NEWLINE is used, `^' matches the empty string immediately after
270 # a newline, regardless of whether execution flags contain REG_NOTBOL.
271 # Similarly, if REG_NEWLINE is used, `$' matches the empty string
272 # immediately before a newline, regardless of execution flags.
273 BHn ^abc abcdef (0,3)
274 BHbn SAME abcdef NOMATCH
275 BHn SAME xyzabcdef NOMATCH
276 BHbn SAME xyzabcdef NOMATCH
277 BHn$ SAME \nabcdef (1,4)
278 BHbn$ SAME \nabcdef (1,4)
279 BHn abc$ defabc (3,6)
280 BHen SAME defabc NOMATCH
281 BHn SAME defabcxyz NOMATCH
282 BHen SAME defabcxyz NOMATCH
283 BHn$ SAME defabc\n (3,6)
284 BHen$ SAME defabc\n (3,6)
286 BHbn SAME abc NOMATCH
287 BHen SAME abc NOMATCH
288 BHben SAME abc NOMATCH
289 BHn$ SAME \nabc\n (1,4)
290 BHn$ SAME defabc\n NOMATCH
291 BHn$ SAME \nabcdef NOMATCH
292 BHn SAME abcdef NOMATCH
293 BHbn SAME abcdef NOMATCH
294 BHn SAME defabc NOMATCH
295 BHen SAME defabc NOMATCH
296 BHn$ SAME abc\ndef (0,3)
297 BHbn$ SAME abc\ndef NOMATCH
298 BHen$ SAME abc\ndef (0,3)
299 BHbn$ SAME abc\ndef NOMATCH
300 BHn$ SAME def\nabc (4,7)
301 BHbn$ SAME def\nabc (4,7)
302 BHen$ SAME def\nabc NOMATCH
303 BHben$ SAME def\nabc NOMATCH
304 # With BRE syntax, `^' has a special meaning only at the beginning of the
305 # RE or the beginning of a parenthesized subexpression.
306 BH a\{0,1\}^bc bc NOMATCH
310 BH a\{0,1\}\(^bc\) bc (0,2)(0,2)
315 # With BRE syntax, `$' has a special meaning only at the end of the
316 # RE or the end of a parenthesized subexpression.
317 BH ab$c\{0,1\} ab NOMATCH
321 BH \(ab$\)c\{0,1\} ab (0,2)(0,2)
326 # Miscellaneous tests for `^' and `$'
328 # For BRE, $ and ^ not magic
329 #En$ x$\n^y foo\nybarx\nyes\n (8,11)
336 # REG_NEWLINE causes `.' not to match newlines
339 # Tests for nonstandard syntax extensions (Enhanced mode off)
341 # Zero width assertions
353 BH \Bx\b aax xxx (2,3)
355 # Shorthands for character classes
356 BH \w\{1,\} ,.(a23_Nt-öo) (3,9)
357 BH \d\{1,\} uR120_4=v4 (2,5)
358 BH \D\{1,\} 120d_=vA4s (3,8)
359 BH \w\+ ,.(a23_Nt-öo) (3,9)
360 BH \d\+ uR120_4=v4 (2,5)
361 BH \D\+ 120d_=vA4s (3,8)
362 # Quoted special characters
365 # Test the \x1B and \x{263a} extensions for specifying 8 bit and wide
366 # characters in hexadecimal.
369 B$H \\x5r \005r (0,2)
370 # test_comp("\\x",REG_EXTENDED,0)
371 # test_nexec("\000",1,0,REG_OK,0,1)
372 # test_comp("\\xr",REG_EXTENDED,0)
373 # test_nexec("\000r",2,0,REG_OK,0,2)
375 B$H \\x{5} \005 (0,1)
376 B$H \\x{5}r \005r (0,2)
377 # test_comp("\\x{}",REG_EXTENDED,0)
378 # test_nexec("\000",1,0,REG_OK,0,1)
379 # test_comp("\\x{}r",REG_EXTENDED,0)
380 # test_nexec("\000r",2,0,REG_OK,0,2)
381 # Tests for (?inrU-inrU) and (?inrU-inrU:) (Enhanced mode off)
382 #E foo(?i)bar fooBaR BADRPT
383 #E foo(?i)bar|zap fooBaR BADRPT
384 #E SAME foozap BADRPT
385 #E SAME foozAp BADRPT
388 #Ei foo(?-i:zap)zot FoOzapZOt BADRPT
389 #Ei SAME FoOzApZOt BADRPT
390 #E foo(?i:bar|zap) foozap BADRPT
391 #E SAME foobar BADRPT
392 #E SAME foobAr BADRPT
393 #E SAME fooZaP BADRPT
394 #E foo(?U:o*)(o*) foooo BADRPT
395 # Test comment syntax (Enhanced mode off)
396 #E foo(?# This here is a comment. )bar foobar BADRPT
397 # Tests for \Q and \E (Enhanced mode off)
398 #E \((\Q)?:\<[^$\E) ()?:\<[^$ EBRACK
399 #E \Qabc\E.* abcdef NOMATCH
400 #E SAME QabcEdef (0,8)
401 #E \Qabc\E.*|foo parabc123wxyz NOMATCH
402 #E SAME fooabc123wxyz (0,3)
403 #E SAME QabcEdef (0,8)
404 # Test bounded repetitions
405 BH a\{0,0\} aaa (0,0)
406 BH a\{0,1\} aaa (0,1)
407 BH a\{1,1\} aaa (0,1)
408 BH a\{1,3\} xaaaaa (1,4)
409 BH a\{0,3\} aaaaa (0,3)
410 BH a\{0,\} NULL (0,0)
414 BH a\{1,\} NULL NOMATCH
418 BH a\{2,\} NULL NOMATCH
422 BH a\{3,\} NULL NOMATCH
429 BH SAME aaaaaaa (0,7)
430 BH a\{5,10\} aaaaaaa (0,7)
431 BH a\{6,6\} aaaaaaaaaaaa (0,6)
432 BH SAME xxaaaaaaaaaaaa (2,8)
433 BH SAME xxaaaaa NOMATCH
434 BH a\{5,6\} aaaaaaaaaaaa (0,6)
435 BH SAME xxaaaaaaaaaaaa (2,8)
436 BH SAME xxaaaaa (2,7)
437 BH SAME xxaaaa NOMATCH
439 BH \([ab]\{5,10\}\)*b bbbbbabaaaaab (0,13)(7,12)
440 BH SAME bbbbbbaaaaab (0,12)(6,11)
441 BH SAME bbbbbbaaaab (0,11)(0,10)
442 BH SAME bbbbbbaaab (0,10)(0,9)
443 BH SAME bbbbbbaab (0,9)(0,8)
444 BH SAME bbbbbbab (0,8)(0,7)
445 BH \([ab]*\)\(ab[ab]\{5,10\}\)ba abbabbbabaabbbbbbbbbbbbbabaaaabab (0,10)(0,0)(0,8)
446 BH SAME abbabbbabaabbbbbbbbbbbbabaaaaabab (0,32)(0,23)(23,30)
447 BH SAME abbabbbabaabbbbbbbbbbbbabaaaabab (0,24)(0,10)(10,22)
448 BH SAME abbabbbabaabbbbbbbbbbbba (0,24)(0,10)(10,22)
449 # Test repeating something that has submatches inside
450 BH \(a\)\{0,5\} NULL (0,0)(?,?)
452 BH SAME aa (0,2)(1,2)
453 BH SAME aaa (0,3)(2,3)
454 BH SAME aaaa (0,4)(3,4)
455 BH SAME aaaaa (0,5)(4,5)
456 BH SAME aaaaaa (0,5)(4,5)
457 BH \(a\)\{2,3\} NULL NOMATCH
459 BH SAME aa (0,2)(1,2)
460 BH SAME aaa (0,3)(2,3)
461 BH SAME aaaa (0,3)(2,3)
462 BH \(a\)\{4\} aaaa (0,4)(3,4)
463 BH \(a*\)\{2\} a (0,1)(1,1)
464 BH \(\(..\)\|\(.\)\)\{2\} aa (0,2)(1,2)(?,?)(1,2)
466 #E (.){2}{3} xxxxx NOMATCH
467 #E SAME xxxxxx (0,6)(5,6)
468 #E (..){2}{3} xxxxxxxxxxx NOMATCH
469 #E SAME xxxxxxxxxxxx (0,12)(10,12)
470 BH \(\(..\)\{2\}.\)\{3\} xxxxxxxxxxxxxx NOMATCH
471 BH SAME xxxxxxxxxxxxxxx (0,15)(10,15)(12,14)
472 BH \(\(..\)\{1,2\}.\)\{3\} xxxxxxxx NOMATCH
473 BH SAME xxxxxxxxx (0,9)(6,9)(6,8)
474 BH SAME xxxxxxxxxx (0,9)(6,9)(6,8)
475 BH SAME xxxxxxxxxxx (0,11)(8,11)(8,10)
476 #E a{2}{2}x NULL NOMATCH
483 #E SAME aaaaaax (2,7)
484 #E SAME aaaaaaax (3,8)
485 #E SAME aaaaaaaax (4,9)
486 # Repeats with iterations inside
487 BH$ \\([a-z]\\+\\)\\{2,5\\} a\n NOMATCH
488 BH$ SAME aa\n (0,2)(1,2)
489 # Multiple repeats in one regexp
490 BH a\{3\}b\{3\} aaabbb (0,6)
491 BH SAME aaabbbb (0,6)
492 BH SAME aaaabbb (1,7)
493 BH SAME aabbb NOMATCH
494 BH SAME aaabb NOMATCH
495 # Test that different types of repetitions work correctly when used
496 # in the same regexp.
497 #E a{2}{2}xb+xc*xd?x aaaaxbxcxdx (0,11)
498 #E SAME aaaxbxcxdx NOMATCH
499 #E SAME aabxcxdx NOMATCH
500 #E SAME aaaacxdx NOMATCH
501 #E SAME aaaaxbdx NOMATCH
502 BH ^!packet [0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\} [0-9]\+ !packet 10.0.2.4 12765 ei voittoa (0,22)
503 # Back referencing tests
504 BH \([a-z]*\) \1 foobar foobar (0,13)(0,6)
505 # Searching for a leftmost longest square (repeated string)
506 BH \(.*\)\1 foobarfoobar (0,12)(0,6)
507 BH a\(b\)*c\1 acb NOMATCH
508 BH SAME abbcbbb (0,5)(2,3)
509 BH SAME abbdbd NOMATCH
510 BH \([a-c]*\)\1 abcacdef (0,0)(0,0)
511 BH SAME abcabcabcd (0,6)(0,3)
512 BH \(a*\)*\(x\)\(\1\) x (0,1)(0,0)(0,1)(1,1)
513 BH SAME ax (0,2)(1,1)(1,2)(2,2)
514 BH \(a\)\1\{1,2\} aabc (0,2)(0,1)
515 BH \(\)\(\1\1\)* NULL (0,0)(0,0)(0,0)
516 # Check that back references work with REG_NOSUB
517 BHw \(o\)\1 foobar NULL
518 BH \(o\)\1 foobar (1,3)(1,2)
519 BH SAME fobar NOMATCH
520 BH \1foo NULL ESUBREG
521 BH \1foo\(bar\) x ESUBREG
522 # Back reference with zero-width assertion
523 BH \(.\)\1$ foox NOMATCH
524 BH SAME foo (1,3)(1,2)
525 # Back references together with {}
526 BH \([0-9]\{5\}\)\1 12345 NOMATCH
527 BH SAME 1234512345 (0,10)(0,5)
528 BH \([0-9]\{4\}\)\1 1234 NOMATCH
529 BH SAME 12341234 (0,8)(0,4)
530 # Test lack of minimal repetitions (non-greedy repetitions)
536 BH .\{2,5\}\? ab?d (0,3)
538 #E <b>(.*?)</b> <b>text1</b><b>text2</b> BADRPT
539 #E a(.*?)(foo|bar|zap) hubba wooga-booga zabar gafoo wazap BADRPT
542 BH \(a\|^b\) bas (0,1)(0,1)
543 # Lack of minimal repetition