# A set of patterns that use anchors in unusual ways, also makes some use of
# capturing groups.

13000:/(^)?foo/O
13001:/(^)??foo/O
13002:/(^|)foo/O
13003:/(|^)foo/O
13004:/(^|^)?foo/O
13005:/(^||^)foo/O

13006:/foo($)?/
13007:/foo($)??/
13008:/foo($|)/
13009:/foo(|$)/
13010:/foo($||$)/

13011:/foo(\z)?/
13012:/foo(\z)??/
13013:/foo(\z|)/
13014:/foo(|\z)/
13015:/foo(\z||\z)/

13016:/(?:^|foo|)foo/O

13017:/(^)*foo/O
13018:/(^)*?foo/O
13019:/(^)+foo/O
13020:/(^)+?foo/O
13021:/(^){1}foo/O

# More anchoring tests from the rose anchoring work
13100:/a\Z/siH
13101:/a\Z/
13102:/\Aa\Z/iH
13103:/\A(\Ab\Z|a)/smi
13104:/(a|b|b$)/
13105:/(b.|cbd|[dbd]$)/si
13106:/(^h|[qj]|m|a)$/

# Various trailing .* cases
13107:/foobar.*\z/
13108:/foobar.*\z/sO
13109:/foobar.*\z/m
13110:/foobar.*\z/smO

13111:/foobar.*\Z/
13112:/foobar.*\Z/s
13113:/foobar.*\Z/m
13114:/foobar.*\Z/sm

13115:/foobar.*$/
13116:/foobar.*$/s
13117:/foobar.*$/m
13118:/foobar.*$/sm

13119:/foobar.*($|)/
13120:/foobar.*($|)/s
13121:/foobar.*($|)/m
13122:/foobar.*($|)/sm

13123:/foobar.*(\z)?/
13124:/foobar.*(\z)?/s
13125:/foobar.*(\z)?/m
13126:/foobar.*(\z)?/sm

# Some alternation variants of the above
13127:/(foo|bar).*\z/
13128:/(foo|bar).*\z/sO
13129:/(foo|bar).*\z/m
13130:/(foo|bar).*\z/smO

13131:/(foo|bar).*\Z/
13132:/(foo|bar).*\Z/s
13133:/(foo|bar).*\Z/m
13134:/(foo|bar).*\Z/sm

13135:/(foo|bar).*$/
13136:/(foo|bar).*$/s
13137:/(foo|bar).*$/m
13138:/(foo|bar).*$/sm

13139:/(foo|bar).*($|)/
13140:/(foo|bar).*($|)/s
13141:/(foo|bar).*($|)/m
13142:/(foo|bar).*($|)/sm

13143:/(foo|bar).*(\z)?/
13144:/(foo|bar).*(\z)?/s
13145:/(foo|bar).*(\z)?/m
13146:/(foo|bar).*(\z)?/sm

# Rose support for .{N,}$
13147:/abc.+$/s
13148:/abc.{2,}$/s
13149:/abc.{3,}$/s
13150:/abc.{10,}$/s
13151:/abc.{150,}$/s

# More bounded and escaped EOD fun
13152:/abc.{2,}\z/s
13153:/abc.{2,5}\z/s
13154:/abc.{2,50}\z/s
13155:/abc.{2,5}$/s
13156:/abc.{2,50}$/s
13157:/abc[^xyz]{2,}\z/s
13158:/abc[^xyz]{2,5}\z/s
13159:/abc[^xyz]{2,50}\z/s
13160:/abc[^xyz]{2,}$/s
13161:/abc[^xyz]{2,5}$/s
13162:/abc[^xyz]{2,50}$/s

# ... fun
13163:/.\z/s
13164:/.$/s
13165:/^.+\z/s
13166:/..\z/s

13167:/^.{50}foo.bar/s

# Anchored literals
13168:/^(.*\.)?trailer\z/s
13169:/^trailer\z/m
13170:/^(.*\.)?trailer$/s
13171:/^trailer$/m

13172:/\Ap\z|s|\A|n/
13173:/\Ap\z|s|\A|\Ab|n/

# Bi-anchored, non cyclic outfix
13174:/^\w{200}$/

# Leading anchored dots
13200:/^.foo/sO
13201:/^.{1}foo/sO
13202:/^.{2}foo/sO
13203:/^.{30}foo/sO
13204:/^.{1,30}foo/sO
13205:/^.{20,}foo/sO
13206:/^.{20,30}foo/sO
13207:/^.{0,20}foo/sO
13208:/^.{1,}foo/sO
13209:/^.?foo/sO
13210:/^.+foo/sO
13211:/^.*foo/sO
13212:/^.{4,20}foo|bar/sO
13213:/^(.{4,20}foo)|bar/sO
13214:/^(.{4,20}foo)|^bar/sO
13215:/^.{20,30}[^f][^o][^o]/sO
13216:/^.{0,}foo/sO
13217:/^.{20,30}a/sO
13218:/^[\x00-\xff]+/s
13219:/^..foo/sO
13220:/^..*foo/sO
13221:/^..*.foo/sO
13222:/^.*.foo/sO
13223:/^..+foo/sO
13224:/^..+.foo/sO
13225:/^.+.foo/sO
13226:/..foo/sO
13227:/..*foo/sO
13228:/..*.foo/sO
13229:/.*.foo/sO
13230:/..+foo/sO
13231:/..+.foo/sO
13232:/.+.foo/sO
13233:/(^.*.bar)?foo/sO
13234:/(^...bar)?foo/sO
13235:/((^....*bar)|(.._))foo/s
13236:/^.{0,20}foo[a-z]/sO
13237:/^.{0,20}fo[oO]/sO
13238:/^.(.{0,2}|.{0,2})foo/sO
13240:/(a|aaaa{4,}|^(a|[^a]|a)?.a[^a]*a)$/
13241:/^.{600,}/s
13242:/.{600,}/s
