summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/xpressive/test/regress.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/xpressive/test/regress.txt')
-rw-r--r--src/boost/libs/xpressive/test/regress.txt3756
1 files changed, 3756 insertions, 0 deletions
diff --git a/src/boost/libs/xpressive/test/regress.txt b/src/boost/libs/xpressive/test/regress.txt
new file mode 100644
index 00000000..803e9d6a
--- /dev/null
+++ b/src/boost/libs/xpressive/test/regress.txt
@@ -0,0 +1,3756 @@
+; Copyright 2004 Eric Niebler.
+;
+; Distributed under the Boost Software License, Version 1.0.
+; (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+[test1]
+str=foobarboo
+pat=foo
+flg=
+br0=foo
+[end]
+
+[test2]
+str=foobarboo
+pat=bar
+flg=
+br0=bar
+[end]
+
+[test3]
+str=foobarboo
+pat=bat
+flg=
+[end]
+
+[test4]
+str=foobarboo
+pat=b.*ar
+flg=
+br0=bar
+[end]
+
+[test5]
+str=foobarboo
+pat=b.*r
+flg=
+br0=bar
+[end]
+
+[test6]
+str=foobarboo
+pat=b.*b
+flg=
+br0=barb
+[end]
+
+[test7]
+str=foobarboo
+pat=b.*o
+flg=
+br0=barboo
+[end]
+
+[test8]
+str=foobarboo
+pat=b.*oo
+flg=
+br0=barboo
+[end]
+
+[test9]
+str=foobarboo
+pat=b.+ar
+flg=
+[end]
+
+[test10]
+str=foobarboo
+pat=b.+r
+flg=
+br0=bar
+[end]
+
+[test11]
+str=foobarboo
+pat=b.+b
+flg=
+br0=barb
+[end]
+
+[test12]
+str=foobarboo
+pat=b.+o
+flg=
+br0=barboo
+[end]
+
+[test13]
+str=foobarboo
+pat=b.+oo
+flg=
+br0=barboo
+[end]
+
+[test14]
+str=foobarboo
+pat=^foo
+flg=
+br0=foo
+[end]
+
+[test15]
+str=foobarboo
+pat=^b.*ar
+flg=
+[end]
+
+[test16]
+str=foobarboo
+pat=b.+ar$
+flg=
+[end]
+
+[test17]
+str=foobarboo
+pat=b.+o$
+flg=
+br0=barboo
+[end]
+
+[test18]
+str=foobarboo
+pat=b.+oo$
+flg=
+br0=barboo
+[end]
+
+[test19]
+str=+1234.56789F
+pat=^([-+]?[0-9]+(\.[0-9]*)?)([CF])$
+flg=
+br0=+1234.56789F
+br1=+1234.56789
+br2=.56789
+br3=F
+[end]
+
+[test20]
+str=+1234.56789
+pat=(\+|-)?([0-9]+\.?[0-9]*|\.[0-9]+)([eE](\+|-)?[0-9]+)?
+flg=
+br0=+1234.56789
+br1=+
+br2=1234.56789
+br3=
+br4=
+[end]
+
+[test21]
+str=-1234.56789
+pat=(\+|-)?([0-9]+\.?[0-9]*|\.[0-9]+)([eE](\+|-)?[0-9]+)?
+flg=
+br0=-1234.56789
+br1=-
+br2=1234.56789
+br3=
+br4=
+[end]
+
+[test22]
+str=-1234.56789e-123123123
+pat=(\+|-)?([0-9]+\.?[0-9]*|\.[0-9]+)([eE](\+|-)?[0-9]+)?
+flg=
+br0=-1234.56789e-123123123
+br1=-
+br2=1234.56789
+br3=e-123123123
+br4=-
+[end]
+
+[test23]
+str=-.1234.56789
+pat=^(\+|-)?([0-9]+\.?[0-9]*|\.[0-9]+)([eE](\+|-)?[0-9]+)?$
+flg=
+[end]
+
+[test24]
+str=-1234.56789e-12312e123
+pat=^(\+|-)?([0-9]+\.?[0-9]*|\.[0-9]+)([eE](\+|-)?[0-9]+)?$
+flg=
+[end]
+
+[test25]
+str=aaaaaaaaac
+pat=a*a*a*a*a*b
+flg=
+[end]
+
+[test26]
+str=ThIs iS a TeSt
+pat=[a-zA-Z]*
+flg=
+br0=ThIs
+[end]
+
+[test27]
+str=a^b
+pat=a^b
+flg=
+[end]
+
+[test28]
+str=a^b
+pat=a\^b
+flg=
+br0=a^b
+[end]
+
+[test29]
+str=a^b
+pat=a[^ ]b
+flg=
+br0=a^b
+[end]
+
+[test30]
+str=a^b
+pat=a[^^]b
+flg=
+[end]
+
+[test31]
+str=a^b
+pat=a[^\^]b
+flg=
+[end]
+
+[test31.1]
+str=a^b
+pat=a[\^]b
+flg=
+br0=a^b
+[end]
+
+[test32]
+str=foobazFOObar
+pat=foo(?=bar)
+flg=i
+br0=FOO
+[end]
+
+[test33]
+str=foobarFOObaz
+pat=foo(?!bar)
+flg=i
+br0=FOO
+[end]
+
+[test34]
+str=foobarFOO
+pat=foo(?!bar)
+flg=i
+br0=FOO
+[end]
+
+[test35]
+str=foobarFOObarfoo
+pat=((?>(foo))bar)+
+flg=i
+br0=foobarFOObar
+br1=FOObar
+br2=FOO
+[end]
+
+[test36]
+str=foobar
+pat=bar|(foo)
+flg=g
+br0=foo
+br1=foo
+br2=bar
+br3=
+[end]
+
+; These results seem odd to me, but
+; it comforms with perl
+
+[test37]
+str=foobar
+pat=(bar|(foo))+
+flg=
+br0=foobar
+br1=bar
+br2=foo
+[end]
+
+[test38]
+str=foobar
+pat=((bar)|foo)+
+flg=
+br0=foobar
+br1=bar
+br2=bar
+[end]
+
+[test39]
+str=foobar
+pat=(foo|(bar))+
+flg=
+br0=foobar
+br1=bar
+br2=bar
+[end]
+
+; These results seem odd to me, but
+; it comforms with perl
+
+[test40]
+str=foobar
+pat=((foo)|bar)+
+flg=
+br0=foobar
+br1=bar
+br2=foo
+[end]
+
+[test41]
+str=foobarFOObarfoo
+pat=((?i)FOO)(.*?)\1
+flg=
+br0=foobarFOObarfoo
+br1=foo
+br2=barFOObar
+[end]
+
+[test42]
+str=foobarFOObarfoo
+pat=((?i)FOO)(.*?)(?i:\1)
+flg=
+br0=foobarFOO
+br1=foo
+br2=bar
+[end]
+
+; perl allows this, and it is pretty sick.
+; But anything perl can do, I can do, too.[end]
+
+[test42.1]
+str=fooFOOOFOOOOObar
+pat=(foo|(?i:\1O))+
+flg=
+br0=fooFOOOFOOOO
+br1=FOOOO
+[end]
+
+[test43]
+str=zoo
+pat=^[A-Za-m]
+flg=
+[end]
+
+[test44]
+str=Here is a URL: http://www.cnn.com. OK?
+pat=(https?:/|www\.)[\w\./,?@#%!_=~&-]+\w
+flg=
+br0=http://www.cnn.com
+br1=http:/
+[end]
+
+[test45]
+str=fooooooooo
+pat=fo{2,5}
+flg=
+br0=fooooo
+[end]
+
+[test46]
+str=fooooooooo
+pat=fo{2,5}?
+flg=
+br0=foo
+[end]
+
+[test45.1]
+str=fooooooooo
+pat=fo{2,5}o
+flg=
+br0=foooooo
+[end]
+
+[test46.1]
+str=fooooooooo
+pat=fo{2,5}?o
+flg=
+br0=fooo
+[end]
+
+[test47]
+str={match this}
+pat=^{.*}$
+flg=
+br0={match this}
+[end]
+
+[test48]
+str=+-+-
+pat=[+-]+
+flg=
+br0=+-+-
+[end]
+
+[test49]
+str=+-+-
+pat=[-+]+
+flg=
+br0=+-+-
+[end]
+
+[test50]
+str=\\05g-9e
+pat=[\d-g]+
+flg=
+br0=05g-9
+[end]
+
+[test51]
+str=\\05g-9e
+pat=[\d-\g]+
+flg=
+br0=05g-9
+[end]
+
+[test52]
+str=\\05g-9e
+pat=[g-\d]+
+flg=
+br0=05g-9
+[end]
+
+[test53]
+str=\\05g-9e
+pat=[\g-\d]+
+flg=
+br0=05g-9
+[end]
+
+[test54]
+str=aBcdefg\\
+pat=[a-\g]+
+flg=i
+br0=aBcdefg
+[end]
+
+[test55]
+str=ab/.-ba
+pat=[--/]+
+flg=
+br0=/.-
+[end]
+
+[test56]
+str=ab+,-ba
+pat=[+--]+
+flg=
+br0=+,-
+[end]
+
+[test56.1]
+str=aaabbbb----
+pat=[b-b]+
+flg=
+br0=bbbb
+[end]
+
+[test57]
+str=foobarFOO5
+pat=(foo).*\15
+flg=i
+[end]
+
+[test58]
+str=Her number is 804-867-5309.
+pat=(?:\d{3}-){2}\d{4}
+flg=
+br0=804-867-5309
+[end]
+
+[test59]
+str=foo
+pat=fo+
+flg=
+br0=foo
+[end]
+
+; backtrack a group[end]
+
+[test60]
+str=fooFOObar
+pat=(foo)+foobar
+flg=i
+br0=fooFOObar
+br1=foo
+[end]
+
+; nested, matched parens [end]
+
+[test61]
+str=this is sublist(now(is(the(time),for(all),good(men))to(come)))ok?
+pat=\bsublist\((?>[^()]*)(?>(?:\((?>[^()]*)(?>(?:\((?>[^()]*)(?>(?:\((?>[^()]*)(?>(?:\((?>[^()]*)\)[^()]*)*)\)[^()]*)*)\)[^()]*)*)\)[^()]*)*)\)
+flg=
+br0=sublist(now(is(the(time),for(all),good(men))to(come)))
+[end]
+
+; nested, matched parens [end]
+
+[test62]
+str=this is sublist(now(is(the(time),for(all),good(men))to(come))ok?
+pat=\bsublist\((?>[^()]*)(?>(?:\((?>[^()]*)(?>(?:\((?>[^()]*)(?>(?:\((?>[^()]*)(?>(?:\((?>[^()]*)\)[^()]*)*)\)[^()]*)*)\)[^()]*)*)\)[^()]*)*)\)
+flg=
+[end]
+
+[test63]
+str=foobar
+pat=^baz|bar
+flg=
+br0=bar
+[end]
+
+[test64]
+str=Now <foo>is</foo> the time for all <BOLD>good</bald> men</bold> to come to the aid of their country.
+pat=<(.*?)>(.*?)</(\1)>
+flg=ig
+sub={$1}$2{/$3}
+res=Now {foo}is{/foo} the time for all {BOLD}good</bald> men{/bold} to come to the aid of their country.
+br0=<foo>is</foo>
+br1=foo
+br2=is
+br3=foo
+br4=<BOLD>good</bald> men</bold>
+br5=BOLD
+br6=good</bald> men
+br7=bold
+[end]
+
+[test64.sed]
+str=Now <foo>is</foo> the time for all <BOLD>good</bald> men</bold> to come to the aid of their country.
+pat=<(.*?)>(.*?)</(\1)>
+flg=igd
+sub={\1}\2{/\3}
+res=Now {foo}is{/foo} the time for all {BOLD}good</bald> men{/bold} to come to the aid of their country.
+br0=<foo>is</foo>
+br1=foo
+br2=is
+br3=foo
+br4=<BOLD>good</bald> men</bold>
+br5=BOLD
+br6=good</bald> men
+br7=bold
+[end]
+
+[test68]
+str=Now is the time for all good men to come to the aid of their country.
+pat=o
+flg=g
+sub=O
+res=NOw is the time fOr all gOOd men tO cOme tO the aid Of their cOuntry.
+br0=o
+br1=o
+br2=o
+br3=o
+br4=o
+br5=o
+br6=o
+br7=o
+br8=o
+[end]
+
+[test69]
+str=FooBarfoobar
+pat=.*foo
+flg=i
+br0=FooBarfoo
+[end]
+
+[test70]
+str=FooBarfoobar
+pat=.*boo
+flg=i
+[end]
+
+[test71]
+str=FooBarfoobar
+pat=.*boo|bar
+flg=i
+br0=Bar
+[end]
+
+[test72]
+str=FooBarfoobar
+pat=bar
+flg=i
+sub=($`$&)
+res=Foo(FooBar)foobar
+br0=Bar
+[end]
+
+[test72.perl]
+str=FooBarfoobar
+pat=bar
+flg=ip
+sub=($`$&)
+res=Foo(FooBar)foobar
+br0=Bar
+[end]
+
+[test73]
+str=FooBarfoobar
+pat=bar
+flg=gi
+sub=($`$&)
+res=Foo(FooBar)foo(FooBarfoobar)
+br0=Bar
+br1=bar
+[end]
+
+[test73.perl]
+str=FooBarfoobar
+pat=bar
+flg=gip
+sub=($`$&)
+res=Foo(FooBar)foo(FooBarfoobar)
+br0=Bar
+br1=bar
+[end]
+
+[test74]
+str=FooBarfoobar
+pat=bar
+flg=gi
+sub=($'$&)
+res=Foo(foobarBar)foo(bar)
+br0=Bar
+br1=bar
+[end]
+
+[test74.perl]
+str=FooBarfoobar
+pat=bar
+flg=gip
+sub=($'$&)
+res=Foo(foobarBar)foo(bar)
+br0=Bar
+br1=bar
+[end]
+
+[test75]
+str=fooooo
+pat=fo{1,}
+flg=
+br0=fooooo
+[end]
+
+[test76.perl]
+str=fOO bAr BaZ
+pat=\w+
+flg=gp
+sub=\L\u$&
+res=Foo Bar Baz
+br0=fOO
+br1=bAr
+br2=BaZ
+[end]
+
+[test76.all]
+str=fOO bAr BaZ
+pat=\w+
+flg=ga
+sub=\L\u$&
+res=Foo Bar Baz
+br0=fOO
+br1=bAr
+br2=BaZ
+[end]
+
+[test77.perl]
+str=fOO bAr BaZ
+pat=\w+
+flg=gp
+sub=a\LA\Ua\Ea
+res=aaAa aaAa aaAa
+br0=fOO
+br1=bAr
+br2=BaZ
+[end]
+
+[test77.all]
+str=fOO bAr BaZ
+pat=\w+
+flg=ga
+sub=a\LA\Ua\Ea
+res=aaAa aaAa aaAa
+br0=fOO
+br1=bAr
+br2=BaZ
+[end]
+
+[test78]
+str=This (has) parens
+pat=This (\Q(has)\E) (parens)
+flg=
+br0=This (has) parens
+br1=(has)
+br2=parens
+[end]
+
+[test79]
+str=This (has) parens
+pat=This \Q(has) parens\E
+flg=
+br0=This (has) parens
+[end]
+
+[test80]
+str=This (has) parens
+pat=This \Q(has) parens
+flg=
+br0=This (has) parens
+[end]
+
+;[test81]
+;str=THAT IS UPPERCASE is
+;pat=IS
+;flg=ig
+;sub=\Uu\Ql$&\E$&n't
+;res=THAT UL$&ISn't UPPERCASE UL$&isn't
+;br0=is
+;[end]
+
+[test82]
+str=abba1234abba
+pat=\d+
+flg=
+br0=1234
+[end]
+
+[test83]
+str=1234abba1234
+pat=\D+
+flg=
+br0=abba
+[end]
+
+[test84]
+str=abba1234abba
+pat=[\d]+
+flg=
+br0=1234
+[end]
+
+[test85]
+str=1234abba1234
+pat=[\D]+
+flg=
+br0=abba
+[end]
+
+[test86]
+str=abba1234abba
+pat=[^\D]+
+flg=
+br0=1234
+[end]
+
+[test87]
+str=1234abba1234
+pat=[^\d]+
+flg=
+br0=abba
+[end]
+
+[test88]
+str=1234abba1234
+pat=[\W\D]+
+flg=
+br0=abba
+[end]
+
+[test89]
+str=1234(.;)abba
+pat=[^\w\d]+
+flg=
+br0=(.;)
+[end]
+
+[test90]
+str=(boo[bar]baz)
+pat=(\(()|\[()).*?(\)\2|\]\3)
+flg=
+br0=(boo[bar]baz)
+br1=(
+br2=
+br3=
+br4=)
+[end]
+
+[test91]
+str=[boo(bar)baz]
+pat=(\(()|\[()).*?(\)\2|\]\3)
+flg=
+br0=[boo(bar)baz]
+br1=[
+br2=
+br3=
+br4=]
+[end]
+
+[test91]
+str=[boo[bar]baz]
+pat=(\(()|\[()).*?(\)\2|\]\3)
+flg=
+br0=[boo[bar]
+br1=[
+br2=
+br3=
+br4=]
+[end]
+
+[test92]
+str=foobarfoo
+pat=(?<=foo)bar
+flg=
+br0=bar
+[end]
+
+[test93]
+str=foobarfoo
+pat=(?<=(f.o))bar
+flg=
+br0=bar
+br1=foo
+[end]
+
+[test94]
+str=foOoo
+pat=(?<=(fo))o
+flg=i
+br0=O
+br1=fo
+[end]
+
+[test95]
+str=fOooo
+pat=(?<!(fo))o
+flg=i
+br0=O
+br1=
+[end]
+
+[test96]
+str=12foo12
+pat=[[:alpha:]]+
+flg=
+br0=foo
+[end]
+
+[test97]
+str=;12foo12;
+pat=[[:alpha:][:digit:]]+
+flg=
+br0=12foo12
+[end]
+
+[test98]
+str=aaaa
+pat=(?<=())a
+flg=
+br0=a
+br1=
+[end]
+
+[test99]
+str=ABCabc123foo
+pat=(?<=(abc\d{3}))foo
+flg=
+br0=foo
+br1=abc123
+[end]
+
+;[test100]
+;str=aaAAa
+;pat=aa
+;flg=gi
+;br0=AA
+;[end]
+
+;[test101]
+;str=aaAAaA
+;pat=aa
+;flg=gi
+;br0=aA
+;[end]
+
+;[test102]
+;str=foobarFOO
+;pat=foo
+;flg=ir
+;br0=FOO
+;[end]
+
+[test103]
+str=a\nxb\n
+pat=(?!^)x
+flg=m
+[end]
+
+[test104]
+str=a\nxb\n
+pat=(?!^)x
+flg=
+br0=x
+[end]
+
+[test105]
+str=a\nxb\n
+pat=(?!\A)x
+flg=m
+br0=x
+[end]
+
+[test106]
+str=(this)
+pat=^(?:\(()|())\w+(?:\)\1|\2)$
+flg=
+br0=(this)
+br1=
+br2=
+[end]
+
+[test107]
+str=this
+pat=^(?:\(()|())\w+(?:\)\1|\2)$
+flg=
+br0=this
+br1=
+br2=
+[end]
+
+[test108]
+str=this)
+pat=^(?:\(()|())\w+(?:\)\1|\2)$
+flg=
+[end]
+
+[test109]
+str=(this
+pat=^(?:\(()|())\w+(?:\)\1|\2)$
+flg=
+[end]
+
+[test110]
+str=abba123abba
+pat=[[:^alpha:]]+
+flg=
+br0=123
+[end]
+
+[test111]
+str=abba123abba
+pat=[[:^alpha:][:alpha:]]+
+flg=
+br0=abba123abba
+[end]
+
+[test112]
+str=123abba123
+pat=[^[:^alpha:]]+
+flg=
+br0=abba
+[end]
+
+;[test113]
+;str=123abba123
+;pat=[[:alpha:]\y]+
+;flg=
+;br0=123abba123
+;[end]
+
+[test114]
+str=abba123abba
+pat=[^[:^alnum:][:^digit:]]+
+flg=
+br0=123
+[end]
+
+[test115]
+str=aaaaA
+pat=^(a\1?){4}$
+flg=i
+br0=aaaaA
+br1=A
+[end]
+
+[test116]
+str=aaaaAa
+pat=^(a\1?){4}$
+flg=i
+br0=aaaaAa
+br1=Aa
+[end]
+
+; test for possible infinite recursion
+
+[test117]
+str=ab
+pat=(a|(?=b)(?R))+
+flg=
+br0=a
+br1=
+[end]
+
+[test118]
+str=abba
+pat=(?R)
+flg=
+br0=
+[end]
+
+[test119]
+str=nothere(HE(hehe(a(b(c)))nothere
+pat=\(((?>[^()]+)|(?R))*\)
+flg=
+br0=(a(b(c)))
+br1=(b(c))
+[end]
+
+[test120]
+str=1(abcd)(x(y)z)pqr
+pat=\(((?>[^()]+)|(?R))*\)
+flg=ga
+br0=(abcd)
+br1=abcd
+br2=(x(y)z)
+br3=z
+[end]
+
+[test121]
+str=()
+pat=\((?:(?>[^()]+)|(?R))?\)
+flg=
+br0=()
+[end]
+
+[test122]
+str=12(abcde(fsh)xyz(foo(bar))lmno)89
+pat=\((?:(?>[^()]+)|(?R))?\)
+flg=
+br0=(fsh)
+[end]
+
+[test123]
+str=(ab(xy)cd)
+pat=\((((?>[^()]+)|(?R))*)\)
+flg=
+br0=(ab(xy)cd)
+br1=ab(xy)cd
+br2=cd
+[end]
+
+[test124]
+str=(ab(xy)cd)
+pat=\((123)?(((?>[^()]+)|(?R))*)\)
+flg=
+br0=(ab(xy)cd)
+br1=
+br2=ab(xy)cd
+br3=cd
+[end]
+
+[test125]
+str=(123ab(xy)cd)
+pat=\((123)?(((?>[^()]+)|(?R))*)\)
+flg=
+br0=(123ab(xy)cd)
+br1=123
+br2=ab(xy)cd
+br3=cd
+[end]
+
+[test126]
+str=(abcd(xyz<p>qrs)123)
+pat=\((((?>[^()<>]+)|((?>[^()]+))|(?R))*)\)
+flg=
+br0=(abcd(xyz<p>qrs)123)
+br1=abcd(xyz<p>qrs)123
+br2=123
+;br3=<p>qrs
+br3=
+[end]
+
+[test127]
+str=foobar
+pat=foo(?#This is a comment[)bar
+flg=
+br0=foobar
+[end]
+
+[test128]
+str=foobar
+pat=^ f oo b ar $
+flg=x
+br0=foobar
+[end]
+
+[test129]
+str=foobar
+pat=^ f o *
+flg=x
+br0=foo
+[end]
+
+[test129.1]
+str=foobar
+pat=^ f \157 *
+flg=x
+br0=foo
+[end]
+
+[test130]
+str=foo bar
+pat=^ f oo\ b ar $
+flg=x
+br0=foo bar
+[end]
+
+[test131]
+str=foo bar
+pat=^ f oo [ ] b ar $
+flg=x
+br0=foo bar
+[end]
+
+[test132]
+str=foo bar
+pat=^ ( ? : f oo [ ] b ar ) $ # This is a comment
+flg=x
+br0=foo bar
+[end]
+
+[test133]
+str=foo bar
+pat=^ f oo [ ] b ar # This is a comment
+flg=x
+br0=foo bar
+[end]
+
+[test134]
+str=foo bar#Thisisnotacomment
+pat=^ f oo [ ] b ar \# This is not a comment
+flg=x
+br0=foo bar#Thisisnotacomment
+[end]
+
+[test135]
+str=f oo b ar
+pat=^f o(?x) o (?-x) b ar
+flg=
+br0=f oo b ar
+[end]
+
+;[test136]
+;str=foofoo
+;pat=(?:foo)\1
+;flg=
+;[end]
+
+[test137]
+str=a--
+pat=^(a?)*$
+flg=
+[end]
+
+[test138]
+str=a--
+pat=^(a?)*?$
+flg=
+[end]
+
+[test139]
+str=bc
+pat=^(b?){2}bc$
+flg=
+br0=bc
+br1=
+[end]
+
+[test140]
+str=bbc
+pat=^(b?){2}bc$
+flg=
+br0=bbc
+br1=
+[end]
+
+[test141]
+str=bbbc
+pat=^(b?){2}bc$
+flg=
+br0=bbbc
+br1=b
+[end]
+
+[test142]
+str=bbbbc
+pat=^(b?){2}bc$
+flg=
+[end]
+
+[test143]
+str=bbbbc
+pat=^(b?)*d$
+flg=
+[end]
+
+[test144]
+str=bc
+pat=^(b?){2}?bc$
+flg=
+br0=bc
+br1=
+[end]
+
+[test145]
+str=bbc
+pat=^(b?){2}?bc$
+flg=
+br0=bbc
+br1=
+[end]
+
+[test146]
+str=bbbc
+pat=^(b?){2}?bc$
+flg=
+br0=bbbc
+br1=b
+[end]
+
+[test147]
+str=bbbbc
+pat=^(b?){2}?bc$
+flg=
+[end]
+
+[test148]
+str=bbbbc
+pat=^(b?)*?d$
+flg=
+[end]
+
+[test149]
+str=bc
+pat=^(b??){2}bc$
+flg=
+br0=bc
+br1=
+[end]
+
+[test150]
+str=bbc
+pat=^(b??){2}bc$
+flg=
+br0=bbc
+br1=b
+[end]
+
+[test151]
+str=bbbc
+pat=^(b??){2}bc$
+flg=
+br0=bbbc
+br1=b
+[end]
+
+[test152]
+str=bbbbc
+pat=^(b??){2}bc$
+flg=
+[end]
+
+[test153]
+str=bbbbc
+pat=^(b??)*d$
+flg=
+[end]
+
+[test154]
+str=bc
+pat=^(b??){2}?bc$
+flg=
+br0=bc
+br1=
+[end]
+
+[test155]
+str=bbc
+pat=^(b??){2}?bc$
+flg=
+br0=bbc
+br1=b
+[end]
+
+[test156]
+str=bbbc
+pat=^(b??){2}?bc$
+flg=
+br0=bbbc
+br1=b
+[end]
+
+[test157]
+str=bbbbc
+pat=^(b??){2}?bc$
+flg=
+[end]
+
+[test158]
+str=bbbbc
+pat=^(b??)*?d$
+flg=
+[end]
+
+[test159]
+str=bbc
+pat=^(|||b)*bc$
+flg=
+br0=bbc
+br1=
+[end]
+
+[test160]
+str=bbc
+pat=^(|||b)*?bc$
+flg=
+br0=bbc
+br1=b
+[end]
+
+[test161]
+str=foo
+pat=\w??
+sub=<$&>
+flg=g
+res=<><f><><o><><o><>
+br0=
+br1=f
+br2=
+br3=o
+br4=
+br5=o
+br6=
+[end]
+
+[test161.sed]
+str=foo
+pat=\w??
+sub=<&>
+flg=gd
+res=<><f><><o><><o><>
+br0=
+br1=f
+br2=
+br3=o
+br4=
+br5=o
+br6=
+[end]
+
+[test162]
+str=foo
+pat=()
+sub=<$&>
+flg=g
+res=<>f<>o<>o<>
+br0=
+br1=
+br2=
+br3=
+br4=
+br5=
+br6=
+br7=
+[end]
+
+[test163]
+str=foo
+pat=()*
+sub=<$&>
+flg=g
+res=<>f<>o<>o<>
+br0=
+br1=
+br2=
+br3=
+br4=
+br5=
+br6=
+br7=
+[end]
+
+[test164]
+str=1yzZ^aAc2
+pat=[Z-a]+
+flg=i
+br0=zZ^aA
+[end]
+
+[test165]
+str=1yzZ^aAc2
+pat=[Z-a]+
+flg=
+br0=Z^a
+[end]
+
+[test166]
+str=G
+pat=f|(?i)g
+flg=
+br0=G
+[end]
+
+[test167]
+str=aBBa
+pat=[[:lower:]]+
+flg=i
+br0=aBBa
+[end]
+
+[test168]
+str=aA
+pat=\x61+
+flg=i
+br0=aA
+[end]
+
+[test169]
+str=aA
+pat=[\x61]+
+flg=i
+br0=aA
+[end]
+
+[test170]
+str=aA
+pat=\u0061+
+flg=i
+br0=aA
+[end]
+
+[test171]
+str=aA
+pat=[\u0061]+
+flg=i
+br0=aA
+[end]
+
+; Test for backreferences over 9
+[test172]
+str=hellohello
+pat=()()()()()()()()()()()(hello)\12
+br0=hellohello
+br1=
+br2=
+br3=
+br4=
+br5=
+br6=
+br7=
+br8=
+br9=
+br10=
+br11=
+br12=hello
+[end]
+
+; test for named captures
+[test173]
+str=hellohello
+pat=(?P<this>he(ll)o)(?P=this)
+br0=hellohello
+br1=hello
+br2=ll
+[end]
+
+; test for named captures
+[test174]
+str=hellohello
+pat=(?P<this>he(ll)o)(?P=this)
+flg=p
+sub=\u\g<this>, world
+res=Hello, world
+br0=hellohello
+br1=hello
+br2=ll
+[end]
+
+; test for quantified, non-capturing groups, bug report
+[test174]
+str=cabba\nabba\ndaba\n
+pat=^(c[^\r\n]*(?:\r?\n|\r)(?:(?!c)[^\r\n]*(?:\r?\n|\r))*)
+flg=
+br0=cabba\nabba\ndaba\n
+br1=cabba\nabba\ndaba\n
+[end]
+
+; tests pilfered from Boost.Regex test_tricky_cases.cpp
+
+[tricky1]
+str=abc
+pat=a(((b)))c
+flg=g
+br0=abc
+br1=b
+br2=b
+br3=b
+[end]
+
+[tricky2]
+str=abd
+pat=a(b|(c))d
+flg=g
+br0=abd
+br1=b
+br2=
+[end]
+
+[tricky3]
+str=acd
+pat=a(b|(c))d
+flg=g
+br0=acd
+br1=c
+br2=c
+[end]
+
+[tricky4]
+str=abbd
+pat=a(b*|c)d
+flg=g
+br0=abbd
+br1=bb
+[end]
+
+[tricky5]
+str=aaaaabaaaabaaaabaaaab
+pat=a[ab]{20}
+flg=g
+br0=aaaaabaaaabaaaabaaaab
+[end]
+
+[tricky6]
+str=aaaaabaaaabaaaabaaaab
+pat=a[ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab]
+flg=g
+br0=aaaaabaaaabaaaabaaaab
+[end]
+
+[tricky7]
+str=aaaaabaaaabaaaabaaaabweeknights
+pat=a[ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab](wee|week)(knights|night)
+flg=g
+br0=aaaaabaaaabaaaabaaaabweeknights
+br1=wee
+br2=knights
+[end]
+
+[tricky8]
+str=a1234567890123456789012345678901234567890123456789012345678901234567890b
+pat=1234567890123456789012345678901234567890123456789012345678901234567890
+flg=g
+br0=1234567890123456789012345678901234567890123456789012345678901234567890
+[end]
+
+[tricky9]
+str=xacegikmoq
+pat=[ab][cd][ef][gh][ij][kl][mn]
+flg=g
+br0=acegikm
+[end]
+
+[tricky10]
+str=xacegikmoq
+pat=[ab][cd][ef][gh][ij][kl][mn][op]
+flg=g
+br0=acegikmo
+[end]
+
+[tricky11]
+str=xacegikmoqy
+pat=[ab][cd][ef][gh][ij][kl][mn][op][qr]
+flg=g
+br0=acegikmoq
+[end]
+
+[tricky12]
+str=xacegikmoqy
+pat=[ab][cd][ef][gh][ij][kl][mn][op][q]
+flg=g
+br0=acegikmoq
+[end]
+
+[tricky13]
+str=zabcdefghi
+pat=(a)(b)(c)(d)(e)(f)(g)(h)
+flg=g
+br0=abcdefgh
+br1=a
+br2=b
+br3=c
+br4=d
+br5=e
+br6=f
+br7=g
+br8=h
+[end]
+
+[tricky14]
+str=zabcdefghij
+pat=(a)(b)(c)(d)(e)(f)(g)(h)(i)
+flg=g
+br0=abcdefghi
+br1=a
+br2=b
+br3=c
+br4=d
+br5=e
+br6=f
+br7=g
+br8=h
+br9=i
+[end]
+
+[tricky15]
+str=zabcdefghijk
+pat=(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)
+flg=g
+br0=abcdefghij
+br1=a
+br2=b
+br3=c
+br4=d
+br5=e
+br6=f
+br7=g
+br8=h
+br9=i
+br10=j
+[end]
+
+[tricky16]
+str=zabcdefghijkl
+pat=(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)
+flg=g
+br0=abcdefghijk
+br1=a
+br2=b
+br3=c
+br4=d
+br5=e
+br6=f
+br7=g
+br8=h
+br9=i
+br10=j
+br11=k
+[end]
+
+[tricky17]
+str=abc
+pat=(a)d|(b)c
+flg=g
+br0=bc
+br1=
+br2=b
+[end]
+
+[tricky18]
+str=_wwwnocolon _mailto:
+pat=_+((www)|(ftp)|(mailto)):_*
+flg=g
+br0=_mailto:
+br1=mailto
+br2=
+br3=
+br4=mailto
+[end]
+
+; Boost.Regex bug
+[tricky19]
+str=acd
+pat=a(b)?c\1d
+flg=g
+;br0=acd
+;br1=
+[end]
+
+[tricky20]
+str=accd
+pat=a(b?c)+d
+flg=g
+br0=accd
+br1=c
+[end]
+
+[tricky21]
+str=weeknights
+pat=(wee|week)(knights|night)
+flg=g
+br0=weeknights
+br1=wee
+br2=knights
+[end]
+
+[tricky22]
+str=abc
+pat=.*
+flg=g
+br0=abc
+br1=
+[end]
+
+[tricky23]
+str=abd
+pat=a(b|(c))d
+flg=g
+br0=abd
+br1=b
+br2=
+[end]
+
+[tricky24]
+str=acd
+pat=a(b|(c))d
+flg=g
+br0=acd
+br1=c
+br2=c
+[end]
+
+[tricky25]
+str=abbd
+pat=a(b*|c|e)d
+flg=g
+br0=abbd
+br1=bb
+[end]
+
+[tricky26]
+str=acd
+pat=a(b*|c|e)d
+flg=g
+br0=acd
+br1=c
+[end]
+
+[tricky27]
+str=ad
+pat=a(b*|c|e)d
+flg=g
+br0=ad
+br1=
+[end]
+
+[tricky28]
+str=abc
+pat=a(b?)c
+flg=g
+br0=abc
+br1=b
+[end]
+
+[tricky29]
+str=ac
+pat=a(b?)c
+flg=g
+br0=ac
+br1=
+[end]
+
+[tricky30]
+str=abc
+pat=a(b+)c
+flg=g
+br0=abc
+br1=b
+[end]
+
+[tricky31]
+str=abbbc
+pat=a(b+)c
+flg=g
+br0=abbbc
+br1=bbb
+[end]
+
+[tricky32]
+str=ac
+pat=a(b*)c
+flg=g
+br0=ac
+br1=
+[end]
+
+[tricky33]
+str=abcdef
+pat=(a|ab)(bc([de]+)f|cde)
+flg=g
+br0=abcdef
+br1=a
+br2=bcdef
+br3=de
+[end]
+
+[tricky34]
+str=abc
+pat=a([bc]?)c
+flg=g
+br0=abc
+br1=b
+[end]
+
+[tricky35]
+str=ac
+pat=a([bc]?)c
+flg=g
+br0=ac
+br1=
+[end]
+
+[tricky36]
+str=abc
+pat=a([bc]+)c
+flg=g
+br0=abc
+br1=b
+[end]
+
+[tricky37]
+str=abcc
+pat=a([bc]+)c
+flg=g
+br0=abcc
+br1=bc
+[end]
+
+[tricky38]
+str=abcbc
+pat=a([bc]+)bc
+flg=g
+br0=abcbc
+br1=bc
+[end]
+
+[tricky39]
+str=abb
+pat=a(bb+|b)b
+flg=g
+br0=abb
+br1=b
+[end]
+
+[tricky40]
+str=abb
+pat=a(bbb+|bb+|b)b
+flg=g
+br0=abb
+br1=b
+[end]
+
+[tricky41]
+str=abbb
+pat=a(bbb+|bb+|b)b
+flg=g
+br0=abbb
+br1=bb
+[end]
+
+[tricky42]
+str=abbb
+pat=a(bbb+|bb+|b)bb
+flg=g
+br0=abbb
+br1=b
+[end]
+
+[tricky43]
+str=abcdef
+pat=(.*).*
+flg=g
+br0=abcdef
+br1=abcdef
+br2=
+br3=
+[end]
+
+[tricky44]
+str=bc
+pat=(a*)*
+flg=g
+br0=
+br1=
+br2=
+br3=
+br4=
+br5=
+[end]
+
+[tricky45]
+str=bc
+pat=Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|(a+)+
+flg=g
+[end]
+
+[tricky46]
+str=aaa
+pat=Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|(a+)+
+flg=g
+br0=aaa
+br1=
+br2=
+br3=
+br4=
+br5=
+br6=
+br7=
+br8=
+br9=
+br10=
+br11=
+br12=
+br13=
+br14=
+br15=
+br16=
+br17=
+br18=
+br19=
+br20=
+br21=
+br22=
+br23=
+br24=
+br25=
+br26=
+br27=
+br28=
+br29=
+br30=
+br31=
+br32=
+br33=
+br34=
+br35=
+br36=
+br37=
+br38=
+br39=
+br40=
+br41=
+br42=
+br43=
+br44=
+br45=
+br46=
+br47=
+br48=
+br49=
+br50=
+br51=
+br52=
+br53=
+br54=
+br55=
+br56=
+br57=
+br58=
+br59=
+br60=
+br61=
+br62=
+br63=
+br64=
+br65=
+br66=
+br67=
+br68=
+br69=
+br70=
+br71=aaa
+[end]
+
+[tricky47]
+str=Zaaa
+pat=Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|(a+)+
+flg=g
+br0=Zaaa
+br1=aaa
+br2=aaa
+br3=aaa
+br4=aaa
+br5=aaa
+br6=aaa
+br7=aaa
+br8=
+br9=
+br10=
+br11=
+br12=
+br13=
+br14=
+br15=
+br16=
+br17=
+br18=
+br19=
+br20=
+br21=
+br22=
+br23=
+br24=
+br25=
+br26=
+br27=
+br28=
+br29=
+br30=
+br31=
+br32=
+br33=
+br34=
+br35=
+br36=
+br37=
+br38=
+br39=
+br40=
+br41=
+br42=
+br43=
+br44=
+br45=
+br46=
+br47=
+br48=
+br49=
+br50=
+br51=
+br52=
+br53=
+br54=
+br55=
+br56=
+br57=
+br58=
+br59=
+br60=
+br61=
+br62=
+br63=
+br64=
+br65=
+br66=
+br67=
+br68=
+br69=
+br70=
+br71=
+[end]
+
+[tricky48]
+str=xyxxxxyxxxz
+pat=xyx*xz
+flg=g
+br0=xyxxxz
+[end]
+
+[tricky49]
+str=ad
+pat=a(b|c)*d
+flg=g
+br0=ad
+br1=
+[end]
+
+[tricky50]
+str=abcd
+pat=a(b|c)*d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky51]
+str=abd
+pat=a(b|c)+d
+flg=g
+br0=abd
+br1=b
+[end]
+
+[tricky52]
+str=abcd
+pat=a(b|c)+d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky53]
+str=ad
+pat=a(b|c?)+d
+flg=g
+br0=ad
+br1=
+[end]
+
+[tricky54]
+str=ad
+pat=a(b|c){0,0}d
+flg=g
+br0=ad
+br1=
+[end]
+
+[tricky55]
+str=ad
+pat=a(b|c){0,1}d
+flg=g
+br0=ad
+br1=
+[end]
+
+[tricky56]
+str=abd
+pat=a(b|c){0,1}d
+flg=g
+br0=abd
+br1=b
+[end]
+
+[tricky57]
+str=ad
+pat=a(b|c){0,2}d
+flg=g
+br0=ad
+br1=
+[end]
+
+[tricky58]
+str=abcd
+pat=a(b|c){0,2}d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky59]
+str=ad
+pat=a(b|c){0,}d
+flg=g
+br0=ad
+br1=
+[end]
+
+[tricky60]
+str=abcd
+pat=a(b|c){0,}d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky61]
+str=abd
+pat=a(b|c){1,1}d
+flg=g
+br0=abd
+br1=b
+[end]
+
+[tricky62]
+str=abd
+pat=a(b|c){1,2}d
+flg=g
+br0=abd
+br1=b
+[end]
+
+[tricky63]
+str=abcd
+pat=a(b|c){1,2}d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky64]
+str=abd
+pat=a(b|c){1,}d
+flg=g
+br0=abd
+br1=b
+[end]
+
+[tricky65]
+str=abcd
+pat=a(b|c){1,}d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky66]
+str=acbd
+pat=a(b|c){2,2}d
+flg=g
+br0=acbd
+br1=b
+[end]
+
+[tricky67]
+str=abcd
+pat=a(b|c){2,2}d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky68]
+str=abcd
+pat=a(b|c){2,4}d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky69]
+str=abcbd
+pat=a(b|c){2,4}d
+flg=g
+br0=abcbd
+br1=b
+[end]
+
+[tricky70]
+str=abcbcd
+pat=a(b|c){2,4}d
+flg=g
+br0=abcbcd
+br1=c
+[end]
+
+[tricky71]
+str=abcd
+pat=a(b|c){2,}d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky72]
+str=abcbd
+pat=a(b|c){2,}d
+flg=g
+br0=abcbd
+br1=b
+[end]
+
+[tricky73]
+str=abc
+pat=a(((b)))c
+flg=g
+br0=abc
+br1=b
+br2=b
+br3=b
+[end]
+
+[tricky74]
+str=abd
+pat=a(b|(c))d
+flg=g
+br0=abd
+br1=b
+br2=
+[end]
+
+[tricky75]
+str=acd
+pat=a(b|(c))d
+flg=g
+br0=acd
+br1=c
+br2=c
+[end]
+
+[tricky76]
+str=abbd
+pat=a(b*|c)d
+flg=g
+br0=abbd
+br1=bb
+[end]
+
+[tricky77]
+str=aaaaabaaaabaaaabaaaab
+pat=a[ab]{20}
+flg=g
+br0=aaaaabaaaabaaaabaaaab
+[end]
+
+[tricky78]
+str=aaaaabaaaabaaaabaaaab
+pat=a[ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab]
+flg=g
+br0=aaaaabaaaabaaaabaaaab
+[end]
+
+[tricky79]
+str=aaaaabaaaabaaaabaaaabweeknights
+pat=a[ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab](wee|week)(knights|night)
+flg=g
+br0=aaaaabaaaabaaaabaaaabweeknights
+br1=wee
+br2=knights
+[end]
+
+[tricky80]
+str=a1234567890123456789012345678901234567890123456789012345678901234567890b
+pat=1234567890123456789012345678901234567890123456789012345678901234567890
+flg=g
+br0=1234567890123456789012345678901234567890123456789012345678901234567890
+[end]
+
+[tricky81]
+str=xacegikmoq
+pat=[ab][cd][ef][gh][ij][kl][mn]
+flg=g
+br0=acegikm
+[end]
+
+[tricky82]
+str=xacegikmoq
+pat=[ab][cd][ef][gh][ij][kl][mn][op]
+flg=g
+br0=acegikmo
+[end]
+
+[tricky83]
+str=xacegikmoqy
+pat=[ab][cd][ef][gh][ij][kl][mn][op][qr]
+flg=g
+br0=acegikmoq
+[end]
+
+[tricky84]
+str=xacegikmoqy
+pat=[ab][cd][ef][gh][ij][kl][mn][op][q]
+flg=g
+br0=acegikmoq
+[end]
+
+[tricky85]
+str=zabcdefghi
+pat=(a)(b)(c)(d)(e)(f)(g)(h)
+flg=g
+br0=abcdefgh
+br1=a
+br2=b
+br3=c
+br4=d
+br5=e
+br6=f
+br7=g
+br8=h
+[end]
+
+[tricky86]
+str=zabcdefghij
+pat=(a)(b)(c)(d)(e)(f)(g)(h)(i)
+flg=g
+br0=abcdefghi
+br1=a
+br2=b
+br3=c
+br4=d
+br5=e
+br6=f
+br7=g
+br8=h
+br9=i
+[end]
+
+[tricky87]
+str=zabcdefghijk
+pat=(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)
+flg=g
+br0=abcdefghij
+br1=a
+br2=b
+br3=c
+br4=d
+br5=e
+br6=f
+br7=g
+br8=h
+br9=i
+br10=j
+[end]
+
+[tricky88]
+str=zabcdefghijkl
+pat=(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)
+flg=g
+br0=abcdefghijk
+br1=a
+br2=b
+br3=c
+br4=d
+br5=e
+br6=f
+br7=g
+br8=h
+br9=i
+br10=j
+br11=k
+[end]
+
+[tricky89]
+str=abc
+pat=(a)d|(b)c
+flg=g
+br0=bc
+br1=
+br2=b
+[end]
+
+[tricky90]
+str=_wwwnocolon _mailto:
+pat=_+((www)|(ftp)|(mailto)):_*
+flg=g
+br0=_mailto:
+br1=mailto
+br2=
+br3=
+br4=mailto
+[end]
+
+[tricky91]
+str=accd
+pat=a(b?c)+d
+flg=g
+br0=accd
+br1=c
+[end]
+
+[tricky92]
+str=weeknights
+pat=(wee|week)(knights|night)
+flg=g
+br0=weeknights
+br1=wee
+br2=knights
+[end]
+
+[tricky93]
+str=abc
+pat=.*
+flg=g
+br0=abc
+br1=
+[end]
+
+[tricky94]
+str=abd
+pat=a(b|(c))d
+flg=g
+br0=abd
+br1=b
+br2=
+[end]
+
+[tricky95]
+str=acd
+pat=a(b|(c))d
+flg=g
+br0=acd
+br1=c
+br2=c
+[end]
+
+[tricky96]
+str=abbd
+pat=a(b*|c|e)d
+flg=g
+br0=abbd
+br1=bb
+[end]
+
+[tricky97]
+str=acd
+pat=a(b*|c|e)d
+flg=g
+br0=acd
+br1=c
+[end]
+
+[tricky98]
+str=ad
+pat=a(b*|c|e)d
+flg=g
+br0=ad
+br1=
+[end]
+
+[tricky99]
+str=abc
+pat=a(b?)c
+flg=g
+br0=abc
+br1=b
+[end]
+
+[tricky100]
+str=ac
+pat=a(b?)c
+flg=g
+br0=ac
+br1=
+[end]
+
+[tricky101]
+str=abc
+pat=a(b+)c
+flg=g
+br0=abc
+br1=b
+[end]
+
+[tricky102]
+str=abbbc
+pat=a(b+)c
+flg=g
+br0=abbbc
+br1=bbb
+[end]
+
+[tricky103]
+str=ac
+pat=a(b*)c
+flg=g
+br0=ac
+br1=
+[end]
+
+[tricky104]
+str=abcdef
+pat=(a|ab)(bc([de]+)f|cde)
+flg=g
+br0=abcdef
+br1=a
+br2=bcdef
+br3=de
+[end]
+
+[tricky105]
+str=abc
+pat=a([bc]?)c
+flg=g
+br0=abc
+br1=b
+[end]
+
+[tricky106]
+str=ac
+pat=a([bc]?)c
+flg=g
+br0=ac
+br1=
+[end]
+
+[tricky107]
+str=abc
+pat=a([bc]+)c
+flg=g
+br0=abc
+br1=b
+[end]
+
+[tricky108]
+str=abcc
+pat=a([bc]+)c
+flg=g
+br0=abcc
+br1=bc
+[end]
+
+[tricky109]
+str=abcbc
+pat=a([bc]+)bc
+flg=g
+br0=abcbc
+br1=bc
+[end]
+
+[tricky110]
+str=abb
+pat=a(bb+|b)b
+flg=g
+br0=abb
+br1=b
+[end]
+
+[tricky111]
+str=abb
+pat=a(bbb+|bb+|b)b
+flg=g
+br0=abb
+br1=b
+[end]
+
+[tricky112]
+str=abbb
+pat=a(bbb+|bb+|b)b
+flg=g
+br0=abbb
+br1=bb
+[end]
+
+[tricky113]
+str=abbb
+pat=a(bbb+|bb+|b)bb
+flg=g
+br0=abbb
+br1=b
+[end]
+
+[tricky114]
+str=abcdef
+pat=(.*).*
+flg=g
+br0=abcdef
+br1=abcdef
+br2=
+br3=
+[end]
+
+[tricky115]
+str=bc
+pat=(a*)*
+flg=g
+br0=
+br1=
+br2=
+br3=
+br4=
+br5=
+[end]
+
+[tricky116]
+str=xyxxxxyxxxz
+pat=xyx*xz
+flg=g
+br0=xyxxxz
+[end]
+
+[tricky117]
+str=ad
+pat=a(b|c)*d
+flg=g
+br0=ad
+br1=
+[end]
+
+[tricky118]
+str=abcd
+pat=a(b|c)*d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky119]
+str=abd
+pat=a(b|c)+d
+flg=g
+br0=abd
+br1=b
+[end]
+
+[tricky120]
+str=abcd
+pat=a(b|c)+d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky121]
+str=ad
+pat=a(b|c?)+d
+flg=g
+br0=ad
+br1=
+[end]
+
+[tricky122]
+str=ad
+pat=a(b|c){0,0}d
+flg=g
+br0=ad
+br1=
+[end]
+
+[tricky123]
+str=ad
+pat=a(b|c){0,1}d
+flg=g
+br0=ad
+br1=
+[end]
+
+[tricky124]
+str=abd
+pat=a(b|c){0,1}d
+flg=g
+br0=abd
+br1=b
+[end]
+
+[tricky125]
+str=ad
+pat=a(b|c){0,2}d
+flg=g
+br0=ad
+br1=
+[end]
+
+[tricky126]
+str=abcd
+pat=a(b|c){0,2}d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky127]
+str=ad
+pat=a(b|c){0,}d
+flg=g
+br0=ad
+br1=
+[end]
+
+[tricky128]
+str=abcd
+pat=a(b|c){0,}d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky129]
+str=abd
+pat=a(b|c){1,1}d
+flg=g
+br0=abd
+br1=b
+[end]
+
+[tricky130]
+str=abd
+pat=a(b|c){1,2}d
+flg=g
+br0=abd
+br1=b
+[end]
+
+[tricky131]
+str=abcd
+pat=a(b|c){1,2}d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky132]
+str=abd
+pat=a(b|c){1,}d
+flg=g
+br0=abd
+br1=b
+[end]
+
+[tricky133]
+str=abcd
+pat=a(b|c){1,}d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky134]
+str=acbd
+pat=a(b|c){2,2}d
+flg=g
+br0=acbd
+br1=b
+[end]
+
+[tricky135]
+str=abcd
+pat=a(b|c){2,2}d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky136]
+str=abcd
+pat=a(b|c){2,4}d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky137]
+str=abcbd
+pat=a(b|c){2,4}d
+flg=g
+br0=abcbd
+br1=b
+[end]
+
+[tricky138]
+str=abcbcd
+pat=a(b|c){2,4}d
+flg=g
+br0=abcbcd
+br1=c
+[end]
+
+[tricky139]
+str=abcd
+pat=a(b|c){2,}d
+flg=g
+br0=abcd
+br1=c
+[end]
+
+[tricky140]
+str=abcbd
+pat=a(b|c){2,}d
+flg=g
+br0=abcbd
+br1=b
+[end]
+
+[tricky141]
+str=abcd
+pat=a(b|c?)+d
+flg=g
+br0=abcd
+br1=
+[end]
+
+[tricky142]
+str=abd
+pat=a(b+|((c)*))+d
+flg=g
+br0=abd
+br1=
+br2=
+br3=
+[end]
+
+; Boost.Regex bug
+[tricky143]
+str=abcd
+pat=a(b+|((c)*))+d
+flg=g
+br0=abcd
+br1=
+br2=
+;br3=c
+br3=
+[end]
+
+; Boost.Regex bug
+[tricky144]
+str=abcd
+pat=a(b|c?)+d
+flg=g
+br0=abcd
+;br1=c
+br1=
+[end]
+
+; Boost.Regex bug
+[tricky145]
+str=abcd
+pat=a(b|((c)*))+d
+flg=g
+br0=abcd
+;br1=c
+;br2=c
+;br3=c
+br1=
+br2=
+br3=
+[end]
+
+; Boost.Regex bug
+[tricky146]
+str=abd
+pat=a(b+|((c)*))+d
+flg=g
+br0=abd
+;br1=b
+br1=
+br2=
+br3=
+[end]
+
+; Boost.Regex bug
+[tricky147]
+str=abcd
+pat=a(b+|((c)*))+d
+flg=g
+br0=abcd
+;br1=c
+;br2=c
+;br3=c
+br1=
+br2=
+br3=
+[end]
+
+[tricky148]
+str=++i //here is a line comment\n
+pat=//[^\n]*
+flg=g
+br0=//here is a line comment
+[end]
+
+[tricky149]
+str=/* here is a block comment */
+pat=/\*([^*]|\*+[^*/])*\*+/
+flg=g
+br0=/* here is a block comment */
+br1=
+[end]
+
+[tricky150]
+str=/**/
+pat=/\*([^*]|\*+[^*/])*\*+/
+flg=g
+br0=/**/
+br1=
+[end]
+
+[tricky151]
+str=/***/
+pat=/\*([^*]|\*+[^*/])*\*+/
+flg=g
+br0=/***/
+br1=
+[end]
+
+[tricky152]
+str=/****/
+pat=/\*([^*]|\*+[^*/])*\*+/
+flg=g
+br0=/****/
+br1=
+[end]
+
+[tricky153]
+str=/*****/
+pat=/\*([^*]|\*+[^*/])*\*+/
+flg=g
+br0=/*****/
+br1=
+[end]
+
+[tricky154]
+str=/*****/*/
+pat=/\*([^*]|\*+[^*/])*\*+/
+flg=g
+br0=/*****/
+br1=
+[end]
+
+[tricky155]
+str=#define some_symbol
+pat=^[[:blank:]]*#([^\n]*\\[[:space:]]+)*[^\n]*
+flg=g
+br0=#define some_symbol
+br1=
+[end]
+
+[tricky156]
+str=#define some_symbol(x) #x
+pat=^[[:blank:]]*#([^\n]*\\[[:space:]]+)*[^\n]*
+flg=g
+br0=#define some_symbol(x) #x
+br1=
+[end]
+
+[tricky157]
+str=#define some_symbol(x) \\ \r\n foo();\\\r\n printf(#x);
+pat=^[[:blank:]]*#([^\n]*\\[[:space:]]+)*[^\n]*
+flg=g
+br0=#define some_symbol(x) \\ \r\n foo();\\\r\n printf(#x);
+br1=foo();\\\r\n
+[end]
+
+[tricky158]
+str=aaaabab
+pat=(aaa)(ab)*
+flg=g
+br0=aaaabab
+br1=aaa
+br2=ab
+[end]
+
+[tricky159]
+str=0xFF
+pat=((0x[[:xdigit:]]+)|([[:digit:]]+))u?((int(8|16|32|64))|L)?
+flg=g
+br0=0xFF
+br1=0xFF
+br2=0xFF
+br3=
+br4=
+br5=
+br6=
+[end]
+
+[tricky160]
+str=35
+pat=((0x[[:xdigit:]]+)|([[:digit:]]+))u?((int(8|16|32|64))|L)?
+flg=g
+br0=35
+br1=35
+br2=
+br3=35
+br4=
+br5=
+br6=
+[end]
+
+[tricky161]
+str=0xFFu
+pat=((0x[[:xdigit:]]+)|([[:digit:]]+))u?((int(8|16|32|64))|L)?
+flg=g
+br0=0xFFu
+br1=0xFF
+br2=0xFF
+br3=
+br4=
+br5=
+br6=
+[end]
+
+[tricky162]
+str=0xFFL
+pat=((0x[[:xdigit:]]+)|([[:digit:]]+))u?((int(8|16|32|64))|L)?
+flg=g
+br0=0xFFL
+br1=0xFF
+br2=0xFF
+br3=
+br4=L
+br5=
+br6=
+[end]
+
+[tricky163]
+str=0xFFFFFFFFFFFFFFFFuint64
+pat=((0x[[:xdigit:]]+)|([[:digit:]]+))u?((int(8|16|32|64))|L)?
+flg=g
+br0=0xFFFFFFFFFFFFFFFFuint64
+br1=0xFFFFFFFFFFFFFFFF
+br2=0xFFFFFFFFFFFFFFFF
+br3=
+br4=int64
+br5=int64
+br6=64
+[end]
+
+[tricky164]
+str='\\x3A'
+pat='([^\\']|\\.)*'
+flg=g
+br0='\\x3A'
+br1=A
+[end]
+
+[tricky165]
+str='\\''
+pat='([^\\']|\\.)*'
+flg=g
+br0='\\''
+br1=\\'
+[end]
+
+[tricky166]
+str='\\n'
+pat='([^\\']|\\.)*'
+flg=g
+br0='\\n'
+br1=\\n
+[end]
+
+[tricky167]
+str=0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}
+pat=0123456789@abcdefghijklmnopqrstuvwxyz\[\\\]\^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ\{\|\}
+flg=gi
+br0=0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}
+[end]
+
+[tricky168]
+str=A
+pat=a
+flg=gi
+br0=A
+[end]
+
+[tricky169]
+str=a
+pat=A
+flg=gi
+br0=a
+[end]
+
+[tricky170]
+str=abcABC
+pat=[abc]+
+flg=gi
+br0=abcABC
+[end]
+
+[tricky171]
+str=abcABC
+pat=[ABC]+
+flg=gi
+br0=abcABC
+[end]
+
+[tricky172]
+str=abcABC
+pat=[a-z]+
+flg=gi
+br0=abcABC
+[end]
+
+[tricky173]
+str=abzANZ
+pat=[A-Z]+
+flg=gi
+br0=abzANZ
+[end]
+
+; Boost.Regex bug
+;[tricky174]
+;str=abzABZ
+;pat=[a-Z]+
+;flg=gi
+;br0=abzABZ
+;[end]
+
+[tricky175]
+str=abzABZ
+pat=[A-z]+
+flg=gi
+br0=abzABZ
+[end]
+
+[tricky176]
+str=abyzABYZ
+pat=[[:lower:]]+
+flg=gi
+br0=abyzABYZ
+[end]
+
+[tricky177]
+str=abzABZ
+pat=[[:upper:]]+
+flg=gi
+br0=abzABZ
+[end]
+
+[tricky178]
+str=abcZZZ
+pat=\w+
+flg=gi
+br0=abcZZZ
+[end]
+
+[tricky179]
+str=abyzABYZ
+pat=[[:alpha:]]+
+flg=gi
+br0=abyzABYZ
+[end]
+
+[tricky180]
+str=09abyzABYZ
+pat=[[:alnum:]]+
+flg=gi
+br0=09abyzABYZ
+[end]
+
+[tricky181]
+str=(
+pat=\(
+flg=g
+br0=(
+[end]
+
+[tricky182]
+str=)
+pat=\)
+flg=g
+br0=)
+[end]
+
+[tricky183]
+str=$
+pat=\$
+flg=g
+br0=$
+[end]
+
+[tricky184]
+str=^
+pat=\^
+flg=g
+br0=^
+[end]
+
+[tricky185]
+str=.
+pat=\.
+flg=g
+br0=.
+[end]
+
+[tricky186]
+str=*
+pat=\*
+flg=g
+br0=*
+[end]
+
+[tricky187]
+str=+
+pat=\+
+flg=g
+br0=+
+[end]
+
+[tricky188]
+str=?
+pat=\?
+flg=g
+br0=?
+[end]
+
+[tricky189]
+str=[
+pat=\[
+flg=g
+br0=[
+[end]
+
+[tricky190]
+str=]
+pat=\]
+flg=g
+br0=]
+[end]
+
+[tricky191]
+str=|
+pat=\|
+flg=g
+br0=|
+[end]
+
+[tricky192]
+str=\\
+pat=\\
+flg=g
+br0=\
+[end]
+
+[tricky193]
+str=#
+pat=#
+flg=g
+br0=#
+[end]
+
+[tricky194]
+str=#
+pat=\#
+flg=g
+br0=#
+[end]
+
+[tricky195]
+str=a-
+pat=a-
+flg=g
+br0=a-
+[end]
+
+[tricky196]
+str=-
+pat=\-
+flg=g
+br0=-
+[end]
+
+[tricky197]
+str={
+pat=\{
+flg=g
+br0={
+[end]
+
+[tricky198]
+str=}
+pat=\}
+flg=g
+br0=}
+[end]
+
+[tricky199]
+str=0
+pat=0
+flg=g
+br0=0
+[end]
+
+[tricky200]
+str=1
+pat=1
+flg=g
+br0=1
+[end]
+
+[tricky201]
+str=9
+pat=9
+flg=g
+br0=9
+[end]
+
+[tricky202]
+str=b
+pat=b
+flg=g
+br0=b
+[end]
+
+[tricky203]
+str=B
+pat=B
+flg=g
+br0=B
+[end]
+
+[tricky204]
+str=<
+pat=<
+flg=g
+br0=<
+[end]
+
+[tricky205]
+str=>
+pat=>
+flg=g
+br0=>
+[end]
+
+[tricky206]
+str=w
+pat=w
+flg=g
+br0=w
+[end]
+
+[tricky207]
+str=W
+pat=W
+flg=g
+br0=W
+[end]
+
+[tricky208]
+str=`
+pat=`
+flg=g
+br0=`
+[end]
+
+[tricky209]
+str=
+pat=
+flg=g
+br0=
+[end]
+
+[tricky210]
+str=\n
+pat=\n
+flg=g
+br0=\n
+[end]
+
+[tricky211]
+str=,
+pat=,
+flg=g
+br0=,
+[end]
+
+[tricky212]
+str=a
+pat=a
+flg=g
+br0=a
+[end]
+
+[tricky213]
+str=f
+pat=f
+flg=g
+br0=f
+[end]
+
+[tricky214]
+str=n
+pat=n
+flg=g
+br0=n
+[end]
+
+[tricky215]
+str=r
+pat=r
+flg=g
+br0=r
+[end]
+
+[tricky216]
+str=t
+pat=t
+flg=g
+br0=t
+[end]
+
+[tricky217]
+str=v
+pat=v
+flg=g
+br0=v
+[end]
+
+[tricky218]
+str=c
+pat=c
+flg=g
+br0=c
+[end]
+
+[tricky219]
+str=x
+pat=x
+flg=g
+br0=x
+[end]
+
+[tricky220]
+str=:
+pat=:
+flg=g
+br0=:
+[end]
+
+[tricky221]
+str=w.a.b
+pat=(\.[[:alnum:]]+){2}
+flg=g
+br0=.a.b
+br1=.b
+[end]
+
+[tricky222]
+str=foobar
+pat=(?!foo)bar
+flg=g
+br0=bar
+[end]
+
+[tricky223]
+str=??bar
+pat=(?!foo)bar
+flg=g
+br0=bar
+[end]
+
+[tricky224]
+str=barfoo
+pat=(?!foo)bar
+flg=g
+br0=bar
+[end]
+
+[tricky225]
+str=bar??
+pat=(?!foo)bar
+flg=g
+br0=bar
+[end]
+
+[tricky226]
+str=bar
+pat=(?!foo)bar
+flg=g
+br0=bar
+[end]
+
+[tricky227]
+str=a\nb
+pat=a\Z
+flg=g
+[end]
+
+[tricky228]
+str=abc
+pat=()
+flg=g
+br0=
+br1=
+br2=
+br3=
+br4=
+br5=
+br6=
+br7=
+[end]
+
+[tricky229]
+str=abc
+pat=^()
+flg=g
+br0=
+br1=
+[end]
+
+[tricky230]
+str=abc
+pat=^()+
+flg=g
+br0=
+br1=
+[end]
+
+[tricky231]
+str=abc
+pat=^(){1}
+flg=g
+br0=
+br1=
+[end]
+
+[tricky232]
+str=abc
+pat=^(){2}
+flg=g
+br0=
+br1=
+[end]
+
+[tricky233]
+str=abc
+pat=^((){2})
+flg=g
+br0=
+br1=
+br2=
+[end]
+
+[tricky234]
+str=a
+pat=()\1
+flg=g
+br0=
+br1=
+br2=
+br3=
+[end]
+
+[tricky235]
+str=ab
+pat=a()\1b
+flg=g
+br0=ab
+br1=
+[end]
+
+[tricky236]
+str=ab
+pat=a()b\1
+flg=g
+br0=ab
+br1=
+[end]
+
+[tricky237]
+str=abcbc
+pat=([a-c]+)\1
+flg=g
+br0=bcbc
+br1=bc
+[end]
+
+[tricky238]
+str=xxxxxxxxyyyyyyyyab
+pat=.+abc
+flg=g
+[end]
+
+[tricky239]
+str=abcdxxxyyyxxxyyy
+pat=(.+)\1
+flg=g
+br0=xxxyyyxxxyyy
+br1=xxxyyy
+[end]
+
+[tricky240]
+str=___________________________________________x
+pat=[_]+$
+flg=g
+[end]
+
+;[tricky241]
+;str=abcXYZ
+;pat=\l+
+;flg=gi
+;br0=abcXYZ
+;[end]
+
+;[tricky242]
+;str=abcXYZ
+;pat=\u+
+;flg=gi
+;br0=abcXYZ
+;[end]
+
+; Boost.Regex bug
+[tricky243]
+str=abcd
+pat=a(b|(((c))*))+d
+flg=g
+br0=abcd
+;br1=c
+;br2=c
+;br3=c
+br1=
+br2=
+br3=
+br4=c
+[end]
+
+[replace1]
+str=acab
+pat=(a(c)?)|(b)
+flg=iga
+sub=(?1(?2(C:):A):B:)
+res=C:AB:
+br0=ac
+br1=ac
+br2=c
+br3=
+br4=a
+br5=a
+br6=
+br7=
+br8=b
+br9=
+br10=
+br11=b
+[end]
+
+[track2157.1]
+str=abc\ndef\nghi
+pat=^.+$
+flg=m
+br0=abc
+[end]
+
+[track2157.2]
+str=abc\ndef\nghi
+pat=.$
+flg=m
+br0=c
+[end]
+
+[track2157.3]
+str=abc\ndef\nghi
+pat=^.+$
+flg=
+[end]
+
+[track2157.4]
+str=abc\ndef\nghi
+pat=.$
+flg=
+br0=i
+[end]
+
+[track2157.5]
+str=abc\r\ndef\r\nghi
+pat=^.+$
+flg=m
+br0=abc
+[end]
+
+[track2157.6]
+str=abc\r\ndef\r\nghi
+pat=.$
+flg=m
+br0=c
+[end]
+
+[nocasealternate]
+str=common HighLight and Blow this
+pat=highlight|blow
+flg=ig
+sub=<b>$&</b>
+res=common <b>HighLight</b> and <b>Blow</b> this
+br0=HighLight
+br1=Blow
+[end]
+
+[track2296]
+str=> ""
+pat=(?P<f>.+):(?P<l>[0-9]+):((?P<c>[0-9]+):)?.*
+flg=
+[end]