perl
view release on metacpan or search on metacpan
t/re/reg_mesg.t view on Meta::CPAN
'/(?@)/' => 'Sequence (?@...) not implemented {#} m/(?@{#})/',
'/(?{ 1/' => 'Missing right curly or square bracket',
'/(?(1x))/' => 'Switch condition not recognized {#} m/(?(1x{#}))/',
'/(?(1x(?#)))/'=> 'Switch condition not recognized {#} m/(?(1x{#}(?#)))/',
'/(?(1)/' => 'Switch (?(condition)... not terminated {#} m/(?(1){#}/',
'/(?(1)x/' => 'Switch (?(condition)... not terminated {#} m/(?(1)x{#}/',
'/(?(1)x|y/' => 'Switch (?(condition)... not terminated {#} m/(?(1)x|y{#}/',
'/(?(1)x|y|z)/' => 'Switch (?(condition)... contains too many branches {#} m/(?(1)x|y|{#}z)/',
'/(?(x)y|x)/' => 'Unknown switch condition (?(...)) {#} m/(?(x{#})y|x)/',
'/(?(??{}))/' => 'Unknown switch condition (?(...)) {#} m/(?(?{#}?{}))/',
'/(?(?[]))/' => 'Unknown switch condition (?(...)) {#} m/(?(?{#}[]))/',
'/(?/' => 'Sequence (? incomplete {#} m/(?{#}/',
'/(?;x/' => 'Sequence (?;...) not recognized {#} m/(?;{#}x/',
'/(?<;name>match)/' => 'Group name must start with a non-digit word character {#} m/(?<;{#}name>match)/',
'/(?\ix/' => 'Sequence (?\...) not recognized {#} m/(?\{#}ix/',
'/(?\mx/' => 'Sequence (?\...) not recognized {#} m/(?\{#}mx/',
'/(?\:x/' => 'Sequence (?\...) not recognized {#} m/(?\{#}:x/',
'/(?\=x/' => 'Sequence (?\...) not recognized {#} m/(?\{#}=x/',
'/(?\!x/' => 'Sequence (?\...) not recognized {#} m/(?\{#}!x/',
'/(?\<=x/' => 'Sequence (?\...) not recognized {#} m/(?\{#}<=x/',
'/(?\<!x/' => 'Sequence (?\...) not recognized {#} m/(?\{#}<!x/',
'/(?\>x/' => 'Sequence (?\...) not recognized {#} m/(?\{#}>x/',
'/(?^-i:foo)/' => 'Sequence (?^-...) not recognized {#} m/(?^-{#}i:foo)/',
'/(?^-i)foo/' => 'Sequence (?^-...) not recognized {#} m/(?^-{#}i)foo/',
'/(?^d:foo)/' => 'Sequence (?^d...) not recognized {#} m/(?^d{#}:foo)/',
'/(?^d)foo/' => 'Sequence (?^d...) not recognized {#} m/(?^d{#})foo/',
'/(?^lu:foo)/' => 'Regexp modifiers "l" and "u" are mutually exclusive {#} m/(?^lu{#}:foo)/',
'/(?^lu)foo/' => 'Regexp modifiers "l" and "u" are mutually exclusive {#} m/(?^lu{#})foo/',
'/(?da:foo)/' => 'Regexp modifiers "d" and "a" are mutually exclusive {#} m/(?da{#}:foo)/',
'/(?lil:foo)/' => 'Regexp modifier "l" may not appear twice {#} m/(?lil{#}:foo)/',
'/(?aaia:foo)/' => 'Regexp modifier "a" may appear a maximum of twice {#} m/(?aaia{#}:foo)/',
'/(?i-l:foo)/' => 'Regexp modifier "l" may not appear after the "-" {#} m/(?i-l{#}:foo)/',
'/((x)/' => 'Unmatched ( {#} m/({#}(x)/',
'/{(}/' => 'Unmatched ( {#} m/{({#}}/', # [perl #127599]
"/x{$inf_p1}/" => "Quantifier in {,} bigger than $inf_m1 {#} m/x{$inf_p1\{#}}/",
"/x{$inf_p1,}/" => "Quantifier in {,} bigger than $inf_m1 {#} m/x{$inf_p1\{#},}/",
"/x{01,2}/" => "Invalid quantifier in {,} {#} m/x{01{#},2}/",
"/x{1,02}/" => "Invalid quantifier in {,} {#} m/x{1,02{#}}/",
'/x**/' => 'Nested quantifiers {#} m/x**{#}/',
'/x[/' => 'Unmatched [ {#} m/x[{#}/',
'/*/', => 'Quantifier follows nothing {#} m/*{#}/',
'/\p{x/' => 'Missing right brace on \p{} {#} m/\p{{#}x/',
'/[\p{x]/' => 'Missing right brace on \p{} {#} m/[\p{{#}x]/',
'/(x)\2/' => 'Reference to nonexistent group {#} m/(x)\2{#}/',
'/\g/' => 'Unterminated \g... pattern {#} m/\g{#}/',
'/\g{1/' => 'Unterminated \g{...} pattern {#} m/\g{1{#}/',
'/\g{-abc}/' => 'Group name must start with a non-digit word character {#} m/\g{-{#}abc}/',
'/\g{1-1}/' => 'Sequence \g{... not terminated {#} m/\g{1{#}-1}/',
'/\g{ -1 foo }/' => 'Sequence \g{... not terminated {#} m/\g{ -1 {#}foo }/',
'/(?<;name>match)/' => 'Group name must start with a non-digit word character {#} m/(?<;{#}name>match)/',
'my $m = "\\\"; $m =~ $m', => 'Trailing \ in regex m/\/',
'/\x{ 1 /' => 'Missing right brace on \x{} {#} m/\x{ 1{#} /',
'/\x{X/' => 'Missing right brace on \x{} {#} m/\x{{#}X/',
'/[\x{X]/' => 'Missing right brace on \x{} {#} m/[\x{{#}X]/',
'/[\x{ A ]/' => 'Missing right brace on \x{} {#} m/[\x{ A{#} ]/',
'/\o{ 1 /' => 'Missing right brace on \o{} {#} m/\o{ 1{#} /',
'/\o{X/' => 'Missing right brace on \o{} {#} m/\o{{#}X/',
'/[\o{X]/' => 'Missing right brace on \o{} {#} m/[\o{{#}X]/',
'/[\o{ 7 ]/' => 'Missing right brace on \o{} {#} m/[\o{ 7{#} ]/',
'/[[:barf:]]/' => 'POSIX class [:barf:] unknown {#} m/[[:barf:]{#}]/',
'/[[=barf=]]/' => 'POSIX syntax [= =] is reserved for future extensions {#} m/[[=barf=]{#}]/',
'/[[.barf.]]/' => 'POSIX syntax [. .] is reserved for future extensions {#} m/[[.barf.]{#}]/',
'/[z-a]/' => 'Invalid [] range "z-a" {#} m/[z-a{#}]/',
'/\p/' => 'Empty \p {#} m/\p{#}/',
'/\P/' => 'Empty \P {#} m/\P{#}/',
'/\p{}/' => 'Empty \p{} {#} m/\p{{#}}/',
'/\P{}/' => 'Empty \P{} {#} m/\P{{#}}/',
'/a\b{cde/' => 'Missing right brace on \b{} {#} m/a\b{{#}cde/',
'/a\B{cde/' => 'Missing right brace on \B{} {#} m/a\B{{#}cde/',
'/\b{}/' => 'Empty \b{} {#} m/\b{}{#}/',
'/\B{}/' => 'Empty \B{} {#} m/\B{}{#}/',
'/\b{gc}/' => "'gc' is an unknown bound type {#} m/\\b{gc{#}}/",
'/\B{gc}/' => "'gc' is an unknown bound type {#} m/\\B{gc{#}}/",
'/(?[[[::]]])/' => "Unexpected ']' with no following ')' in (?[... {#} m/(?[[[::]]{#}])/",
'/(?[[[:w:]]])/' => "Unexpected ']' with no following ')' in (?[... {#} m/(?[[[:w:]]{#}])/",
'/(?[a])/' => 'Unexpected character {#} m/(?[a{#}])/',
'/(?[ + \t ])/' => 'Unexpected binary operator \'+\' with no preceding operand {#} m/(?[ +{#} \t ])/',
'/(?[ \cK - ( + \t ) ])/' => 'Unexpected binary operator \'+\' with no preceding operand {#} m/(?[ \cK - ( +{#} \t ) ])/',
'/(?[ \cK ( \t ) ])/' => 'Unexpected \'(\' with no preceding operator {#} m/(?[ \cK ({#} \t ) ])/',
'/(?[ \cK \t ])/' => 'Operand with no preceding operator {#} m/(?[ \cK \t{#} ])/',
'/(?[ \0004 ])/' => 'Need exactly 3 octal digits {#} m/(?[ \0004 {#}])/',
'/(?[ \05 ])/' => 'Need exactly 3 octal digits {#} m/(?[ \05 {#}])/',
'/(?[ \o{1038} ])/' => 'Non-octal character {#} m/(?[ \o{1038{#}} ])/',
'/(?[ \o{} ])/' => 'Empty \o{} {#} m/(?[ \o{}{#} ])/',
'/(?[ \x{defg} ])/' => 'Non-hex character {#} m/(?[ \x{defg{#}} ])/',
'/(?[ \xabcdef ])/' => 'Use \\x{...} for more than two hex characters {#} m/(?[ \xabc{#}def ])/',
'/(?[ \x{} ])/' => 'Empty \x{} {#} m/(?[ \x{}{#} ])/',
'/(?[ \cK + ) ])/' => 'Unexpected \')\' {#} m/(?[ \cK + ){#} ])/',
'/(?[ \cK + ])/' => 'Incomplete expression within \'(?[ ])\' {#} m/(?[ \cK + {#}])/',
'/(?[ ( ) ])/' => 'Incomplete expression within \'(?[ ])\' {#} m/(?[ ( ){#} ])/',
'/(?[[0]+()+])/' => 'Incomplete expression within \'(?[ ])\' {#} m/(?[[0]+(){#}+])/',
'/(?[ \p{foo} ])/' => 'Can\'t find Unicode property definition "foo" {#} m/(?[ \p{foo}{#} ])/',
'/(?[ \p{ foo = bar } ])/' => 'Can\'t find Unicode property definition "foo = bar" {#} m/(?[ \p{ foo = bar }{#} ])/',
'/(?[ \8 ])/' => 'Unrecognized escape \8 in character class {#} m/(?[ \8{#} ])/',
'/(?[ \t ]/' => "Unexpected ']' with no following ')' in (?[... {#} m/(?[ \\t ]{#}/",
'/(?[ [ \t ]/' => "Syntax error in (?[...]) {#} m/(?[ [ \\t ]{#}/",
'/(?[ \t ] ]/' => "Unexpected ']' with no following ')' in (?[... {#} m/(?[ \\t ]{#} ]/",
'/(?[ [ ] ]/' => "Syntax error in (?[...]) {#} m/(?[ [ ] ]{#}/",
'/(?[ \t + \e # This was supposed to be a comment ])/' =>
"Syntax error in (?[...]) {#} m/(?[ \\t + \\e # This was supposed to be a comment ]){#}/",
'/(?[ ])/' => 'Incomplete expression within \'(?[ ])\' {#} m/(?[ {#}])/',
'm/(?[[a-\d]])/' => 'False [] range "a-\d" {#} m/(?[[a-\d{#}]])/',
'm/(?[[\w-x]])/' => 'False [] range "\w-" {#} m/(?[[\w-{#}x]])/',
'm/(?[[a-\pM]])/' => 'False [] range "a-\pM" {#} m/(?[[a-\pM{#}]])/',
'm/(?[[\pM-x]])/' => 'False [] range "\pM-" {#} m/(?[[\pM-{#}x]])/',
'm/(?[[^\N{LATIN CAPITAL LETTER A WITH MACRON AND GRAVE}]])/' => '\N{} here is restricted to one character {#} m/(?[[^\N{U+100.300{#}}]])/',
'm/(?[ \p{Digit} & (?^(?[ \p{Thai} | \p{Lao} ]))])/' => 'Sequence (?^(...) not recognized {#} m/(?[ \p{Digit} & (?^({#}?[ \p{Thai} | \p{Lao} ]))])/',
'm/(?[ \p{Digit} & (?(?[ \p{Thai} | \p{Lao} ]))])/' => 'Unexpected character {#} m/(?[ \p{Digit} & (?{#}(?[ \p{Thai} | \p{Lao} ]))])/',
'm/\p{Is_Is_Any}/' => 'Unknown user-defined property name \p{main::Is_Is_Any}',
'm/\o{/' => 'Missing right brace on \o{} {#} m/\o{{#}/',
'm/\o/' => 'Missing braces on \o{} {#} m/\o{#}/',
'm/\o{}/' => 'Empty \o{} {#} m/\o{}{#}/',
'm/[\o{]/' => 'Missing right brace on \o{} {#} m/[\o{{#}]/',
'm/[\o]/' => 'Missing braces on \o{} {#} m/[\o{#}]/',
'm/[\o{}]/' => 'Empty \o{} {#} m/[\o{}{#}]/',
'm/(?^-i:foo)/' => 'Sequence (?^-...) not recognized {#} m/(?^-{#}i:foo)/',
'm/\87/' => 'Reference to nonexistent group {#} m/\87{#}/',
'm/a\87/' => 'Reference to nonexistent group {#} m/a\87{#}/',
'm/a\97/' => 'Reference to nonexistent group {#} m/a\97{#}/',
'm/(*DOOF)/' => 'Unknown verb pattern \'DOOF\' {#} m/(*DOOF){#}/',
'm/(?&a/' => 'Sequence (?&... not terminated {#} m/(?&a{#}/',
'm/(?P=/' => 'Sequence ?P=... not terminated {#} m/(?P={#}/',
"m/(?'/" => "Sequence (?'... not terminated {#} m/(?'{#}/",
"m/(?<name)/" => "Sequence (?<... not terminated {#} m/(?<name{#})/",
'm/(?&/' => 'Sequence (?&... not terminated {#} m/(?&{#}/',
'm/(?(</' => 'Sequence (?(<... not terminated {#} m/(?(<{#}/',
"m/(?('/" => "Sequence (?('... not terminated {#} m/(?('{#}/",
'm/\g{/' => 'Sequence \g{... not terminated {#} m/\g{{#}/',
'm/\k</' => 'Sequence \k<... not terminated {#} m/\k<{#}/',
'/((?# This is a comment in the middle of a token)?:foo)/' => 'In \'(?...)\', the \'(\' and \'?\' must be adjacent {#} m/((?# This is a comment in the middle of a token)?{#}:foo)/',
'/((?# This is a comment in the middle of a token)*FAIL)/' => 'In \'(*VERB...)\', the \'(\' and \'*\' must be adjacent {#} m/((?# This is a comment in the middle of a token)*{#}FAIL)/',
'/((?# This is a comment in the middle of a token)*script_run:foo)/' => 'In \'(*...)\', the \'(\' and \'*\' must be adjacent {#} m/((?# This is a comment in the middle of a token)*{#}script_run:foo)/',
'/(*script_runfoo)/' => 'Unknown \'(*...)\' construct \'script_runfoo\' {#} m/(*script_runfoo){#}/',
'/(*srfoo)/' => 'Unknown \'(*...)\' construct \'srfoo\' {#} m/(*srfoo){#}/',
'/(*script_run)/' => '\'(*script_run\' requires a terminating \':\' {#} m/(*script_run{#})/',
'/(*sr)/' => '\'(*sr\' requires a terminating \':\' {#} m/(*sr{#})/',
'/(*pla)/' => '\'(*pla\' requires a terminating \':\' {#} m/(*pla{#})/',
'/(*script_run/' => 'Unterminated \'(*...\' construct {#} m/(*script_run{#}/',
'/(*sr/' => 'Unterminated \'(*...\' construct {#} m/(*sr{#}/',
'/(*script_run:foo/' => 'Unterminated \'(*...\' argument {#} m/(*script_run:foo{#}/',
'/(*sr:foo/' => 'Unterminated \'(*...\' argument {#} m/(*sr:foo{#}/',
'/(?[\ &!])/' => 'Incomplete expression within \'(?[ ])\' {#} m/(?[\ &!{#}])/', # [perl #126180]
'/(?[\ +!])/' => 'Incomplete expression within \'(?[ ])\' {#} m/(?[\ +!{#}])/', # [perl #126180]
'/(?[\ -!])/' => 'Incomplete expression within \'(?[ ])\' {#} m/(?[\ -!{#}])/', # [perl #126180]
'/(?[\ ^!])/' => 'Incomplete expression within \'(?[ ])\' {#} m/(?[\ ^!{#}])/', # [perl #126180]
'/(?[\ |!])/' => 'Incomplete expression within \'(?[ ])\' {#} m/(?[\ |!{#}])/', # [perl #126180]
'/(?[()-!])/' => 'Incomplete expression within \'(?[ ])\' {#} m/(?[(){#}-!])/', # [perl #126204]
'/(?[!()])/' => 'Incomplete expression within \'(?[ ])\' {#} m/(?[!(){#}])/', # [perl #126404]
'/\w{/' => 'Unescaped left brace in regex is illegal here {#} m/\w{{#}/',
'/\q{/' => 'Unescaped left brace in regex is illegal here {#} m/\q{{#}/',
'/\A{/' => 'Unescaped left brace in regex is illegal here {#} m/\A{{#}/',
'/(?<=/' => 'Sequence (?<=... not terminated {#} m/(?<={#}/', # [perl #128170]
'/(?<!/' => 'Sequence (?<!... not terminated {#} m/(?<!{#}/',
'/(?!/' => 'Sequence (?!... not terminated {#} m/(?!{#}/',
'/(?=/' => 'Sequence (?=... not terminated {#} m/(?={#}/',
'/\p{vertical tab}/' => 'Can\'t find Unicode property definition "vertical tab" {#} m/\\p{vertical tab}{#}/', # [perl #132055]
"/$bug133423/" => "Unexpected ']' with no following ')' in (?[... {#} m/(?[(?^:(?[\\]))\\]{#}|2[^^]\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80])R.\\670/",
'/[^/' => 'Unmatched [ {#} m/[{#}^/', # [perl #133767]
'/\p{Is_Other_Alphabetic=F}/ ' => 'Can\'t find Unicode property definition "Is_Other_Alphabetic=F" {#} m/\p{Is_Other_Alphabetic=F}{#}/',
'/\p{Is_Other_Alphabetic=F}/ ' => 'Can\'t find Unicode property definition "Is_Other_Alphabetic=F" {#} m/\p{Is_Other_Alphabetic=F}{#}/',
'/\x{100}(?(/' => 'Unknown switch condition (?(...)) {#} m/\\x{100}(?({#}/', # [perl #133896]
'/(?[\N{KEYCAP DIGIT NINE}/' => '\N{} here is restricted to one character {#} m/(?[\\N{U+39.FE0F.20E3{#}}/', # [perl #133988]
'/0000000000000000[\N{U+0.00}0000/' => 'Unmatched [ {#} m/0000000000000000[{#}\N{U+0.00}0000/', # [perl #134059]
'/\p{nv=\b5\b}/' => 'Can\'t find Unicode property definition "nv=\\b5\\b" {#} m/\\p{nv=\\b5\\b}{#}/',
'/\p{nv=:(?g)10:}/' => 'Use of modifier \'g\' is not allowed in Unicode property wildcard subpatterns {#} m/(?g{#})10/',
'/\p{gc=:L*:}/' => 'Use of quantifier \'*\' is not allowed in Unicode property wildcard subpatterns {#} m/L*{#}/',
'/\p{gc=:L\G:}/' => 'Use of \'\G\' is not allowed in Unicode property wildcard subpatterns {#} m/L\G{#}/',
'/\p{gc=:(?a)L:}/' => 'Use of modifier \'a\' is not allowed in Unicode property wildcard subpatterns {#} m/(?a){#}L/',
'/\p{gc=:(?u)L:}/' => 'Use of modifier \'u\' is not allowed in Unicode property wildcard subpatterns {#} m/(?u){#}L/',
'/\p{gc=:(?d)L:}/' => 'Use of modifier \'d\' is not allowed in Unicode property wildcard subpatterns {#} m/(?d){#}L/',
'/\p{gc=:(?l)L:}/' => 'Use of modifier \'l\' is not allowed in Unicode property wildcard subpatterns {#} m/(?l){#}L/',
'/\p{gc=:(?-m)L:}/' => 'Use of modifier \'-m\' is not allowed in Unicode property wildcard subpatterns {#} m/(?-m{#})L/',
'/\p{gc=:\pS:}/' => 'Use of \'\\pS\' is not allowed in Unicode property wildcard subpatterns {#} m/\\pS{#}/',
'/\p{gc=:\PS:}/' => 'Use of \'\\PS\' is not allowed in Unicode property wildcard subpatterns {#} m/\\PS{#}/',
'/\p{gc=:[\pS]:}/' => 'Use of \'\\pS\' is not allowed in Unicode property wildcard subpatterns {#} m/[\\pS{#}]/',
'/\p{gc=:[\PS]:}/' => 'Use of \'\\PS\' is not allowed in Unicode property wildcard subpatterns {#} m/[\\PS{#}]/',
'/(?[\p{name=KATAKANA LETTER AINU P}])/' => 'Unicode string properties are not implemented in (?[...]) {#} m/(?[\p{name=KATAKANA LETTER AINU P}{#}])/',
'/(?[ (?^x:(?[ ])) ])/' => 'Incomplete expression within \'(?[ ])\' {#} m/(?[ (?^x:(?[ {#}])) ])/',
'/(?[ (?x:(?[ ])) ])/' => 'Incomplete expression within \'(?[ ])\' {#} m/(?[ (?x:(?[ {#}])) ])/', # GH #16779
);
# These are messages that are death under 'use re "strict"', and may or may
# not warn otherwise. See comment before @warning as to why some have a
# \x{100} in them. This array has 3 elements per construct. [0] is the regex
# to use; [1] is the message under no strict (empty to not warn), and [2] is
# under strict.
my @death_only_under_strict = (
t/re/reg_mesg.t view on Meta::CPAN
'/xa{3\,4}y/' => 'Unescaped left brace in regex is passed through {#} m/xa{{#}3\,4}y/',
=> 'Unescaped left brace in regex is illegal here {#} m/xa{{#}3\,4}y/',
'/\\${[^\\}]*}/' => 'Unescaped left brace in regex is passed through {#} m/\\${{#}[^\\}]*}/',
=> 'Unescaped left brace in regex is illegal here {#} m/\\${{#}[^\\}]*}/',
'/.{/' => 'Unescaped left brace in regex is passed through {#} m/.{{#}/',
=> 'Unescaped left brace in regex is illegal here {#} m/.{{#}/',
'/[x]{/' => 'Unescaped left brace in regex is passed through {#} m/[x]{{#}/',
=> 'Unescaped left brace in regex is illegal here {#} m/[x]{{#}/',
'/\p{Latin}{/' => 'Unescaped left brace in regex is passed through {#} m/\p{Latin}{{#}/',
=> 'Unescaped left brace in regex is illegal here {#} m/\p{Latin}{{#}/',
'/\x{100}\x/' => "",
=> "Empty \\x {#} m/\\x{100}\\x{#}/",
'/\o{ 1 20 }/' => 'Non-octal character \' \' terminates \o early. Resolved as "\o{001}" {#} m/\o{ 1 20 }{#}/',
=> 'Non-octal character {#} m/\\o{ 1 {#}20 }/',
'/\x{ 5 0 }/' => 'Non-hex character \' \' terminates \x early. Resolved as "\x{05}" {#} m/\x{ 5 0 }{#}/',
=> 'Non-hex character {#} m/\\x{ 5 {#}0 }/',
);
# These need the character 'ã' as a marker for mark_as_utf8()
my @death_utf8 = mark_as_utf8(
'/ã(?<= .*)/' => 'Lookbehind longer than 255 not implemented in regex m/ã(?<= .*)/',
'/(?<= ã{1000})/' => 'Lookbehind longer than 255 not implemented in regex m/(?<= ã{1000})/',
'/ã(?ã)ã/' => 'Sequence (?ã...) not recognized {#} m/ã(?ã{#})ã/',
'/ã(?(1ã))ã/' => 'Switch condition not recognized {#} m/ã(?(1ã{#}))ã/',
'/(?(1)ã|y|ã)/' => 'Switch (?(condition)... contains too many branches {#} m/(?(1)ã|y|{#}ã)/',
'/(?(ã)y|ã)/' => 'Unknown switch condition (?(...)) {#} m/(?(ã{#})y|ã)/',
'/ã(?/' => 'Sequence (? incomplete {#} m/ã(?{#}/',
'/ã(?;ã/' => 'Sequence (?;...) not recognized {#} m/ã(?;{#}ã/',
'/ã(?<;name>match)ã/' => 'Group name must start with a non-digit word character {#} m/ã(?<;{#}name>match)ã/',
'/ã(?\ixã/' => 'Sequence (?\...) not recognized {#} m/ã(?\{#}ixã/',
'/ã(?^lu:ã)/' => 'Regexp modifiers "l" and "u" are mutually exclusive {#} m/ã(?^lu{#}:ã)/',
'/ã(?lil:ã)/' => 'Regexp modifier "l" may not appear twice {#} m/ã(?lil{#}:ã)/',
'/ã(?aaia:ã)/' => 'Regexp modifier "a" may appear a maximum of twice {#} m/ã(?aaia{#}:ã)/',
'/ã(?i-l:ã)/' => 'Regexp modifier "l" may not appear after the "-" {#} m/ã(?i-l{#}:ã)/',
'/ã((ã)/' => 'Unmatched ( {#} m/ã({#}(ã)/',
"/ã{$inf_p1}ã/" => "Quantifier in {,} bigger than $inf_m1 {#} m/ã{$inf_p1\{#}}ã/",
"/ã{$inf_p1,}ã/" => "Quantifier in {,} bigger than $inf_m1 {#} m/ã{$inf_p1\{#},}ã/",
"/ã{01}ã/" => "Invalid quantifier in {,} {#} m/ã{01{#}}ã/",
"/ã{1,02}ã/" => "Invalid quantifier in {,} {#} m/ã{1,02{#}}ã/",
'/ã**ã/' => 'Nested quantifiers {#} m/ã**{#}ã/',
'/ã[ã/' => 'Unmatched [ {#} m/ã[{#}ã/',
'/*ã/', => 'Quantifier follows nothing {#} m/*{#}ã/',
'/ã\p{ã/' => 'Missing right brace on \p{} {#} m/ã\p{{#}ã/',
'/(ã)\2ã/' => 'Reference to nonexistent group {#} m/(ã)\2{#}ã/',
'/\g{ã/; #no latin1' => 'Sequence \g{... not terminated {#} m/\g{ã{#}/',
'my $m = "ã\\\"; $m =~ $m', => 'Trailing \ in regex m/ã\/',
'/\x{ã/' => 'Missing right brace on \x{} {#} m/\x{{#}ã/',
'/ã[\x{ã]ã/' => 'Missing right brace on \x{} {#} m/ã[\x{{#}ã]ã/',
'/ã[\x{ã]/' => 'Missing right brace on \x{} {#} m/ã[\x{{#}ã]/',
'/ã\o{ã/' => 'Missing right brace on \o{} {#} m/ã\o{{#}ã/',
'/[ã-a]ã/' => 'Invalid [] range "ã-a" {#} m/[ã-a{#}]ã/',
'/ã\p{}ã/' => 'Empty \p{} {#} m/ã\p{{#}}ã/',
'/ã(?[[[:ã]]])ã/' => "Unexpected ']' with no following ')' in (?[... {#} m/ã(?[[[:ã]]{#}])ã/",
'/ã(?[[[:ã: ])ã/' => "Syntax error in (?[...]) {#} m/ã(?[[[:ã: ])ã{#}/",
'/ã(?[[[::]]])ã/' => "Unexpected ']' with no following ')' in (?[... {#} m/ã(?[[[::]]{#}])ã/",
'/ã(?[[[:ã:]]])ã/' => "Unexpected ']' with no following ')' in (?[... {#} m/ã(?[[[:ã:]]{#}])ã/",
'/ã(?[ã])ã/' => 'Unexpected character {#} m/ã(?[ã{#}])ã/',
'/ã(?[ + [ã] ])/' => 'Unexpected binary operator \'+\' with no preceding operand {#} m/ã(?[ +{#} [ã] ])/',
'/ã(?[ \cK - ( + [ã] ) ])/' => 'Unexpected binary operator \'+\' with no preceding operand {#} m/ã(?[ \cK - ( +{#} [ã] ) ])/',
'/ã(?[ \cK ( [ã] ) ])/' => 'Unexpected \'(\' with no preceding operator {#} m/ã(?[ \cK ({#} [ã] ) ])/',
'/ã(?[ \cK [ã] ])ã/' => 'Operand with no preceding operator {#} m/ã(?[ \cK [ã{#}] ])ã/',
'/ã(?[ \0004 ])ã/' => 'Need exactly 3 octal digits {#} m/ã(?[ \0004 {#}])ã/',
'/(?[ \o{ã} ])ã/' => 'Non-octal character {#} m/(?[ \o{ã{#}} ])ã/',
'/ã(?[ \o{} ])ã/' => 'Empty \o{} {#} m/ã(?[ \o{}{#} ])ã/',
'/(?[ \x{ã} ])ã/' => 'Non-hex character {#} m/(?[ \x{ã{#}} ])ã/',
'/(?[ \p{ã} ])/' => 'Can\'t find Unicode property definition "ã" {#} m/(?[ \p{ã}{#} ])/',
'/(?[ \p{ ã = bar } ])/' => 'Can\'t find Unicode property definition "ã = bar" {#} m/(?[ \p{ ã = bar }{#} ])/',
'/ã(?[ \t ]/' => "Unexpected ']' with no following ')' in (?[... {#} m/ã(?[ \\t ]{#}/",
'/(?[ \t + \e # ã This was supposed to be a comment ])/' =>
"Syntax error in (?[...]) {#} m/(?[ \\t + \\e # ã This was supposed to be a comment ]){#}/",
'm/(*ã)ã/' => q<Unknown '(*...)' construct 'ã' {#} m/(*ã){#}ã/>,
'/\cã/' => "Character following \"\\c\" must be printable ASCII {#} m/\\cã{#}/",
'/[\cã]/' => "Character following \"\\c\" must be printable ASCII {#} m/[\\cã{#}]/",
'/\b{ã}/' => "'ã' is an unknown bound type {#} m/\\b{ã{#}}/",
'/\B{ã}/' => "'ã' is an unknown bound type {#} m/\\B{ã{#}}/",
'/ã(?<â¿name>match)ã/; #no latin1' => 'Group name must start with a non-digit word character {#} m/ã(?<â¿{#}name>match)ã/',
);
push @death, @death_utf8;
my @death_utf8_only_under_strict = (
"m'ã[\\y]ã'" => 'Unrecognized escape \y in character class passed through {#} m/ã[\y{#}]ã/',
=> 'Unrecognized escape \y in character class {#} m/ã[\y{#}]ã/',
'm/ã[ã-\d]ã/' => 'False [] range "ã-\d" {#} m/ã[ã-\d{#}]ã/',
=> 'False [] range "ã-\d" {#} m/ã[ã-\d{#}]ã/',
'm/ã[\w-ã]ã/' => 'False [] range "\w-" {#} m/ã[\w-{#}ã]ã/',
=> 'False [] range "\w-" {#} m/ã[\w-{#}ã]ã/',
'm/ã[ã-\pM]ã/' => 'False [] range "ã-\pM" {#} m/ã[ã-\pM{#}]ã/',
=> 'False [] range "ã-\pM" {#} m/ã[ã-\pM{#}]ã/',
'/ã[ã-[:digit:]]ã/' => 'False [] range "ã-[:digit:]" {#} m/ã[ã-[:digit:]{#}]ã/',
=> 'False [] range "ã-[:digit:]" {#} m/ã[ã-[:digit:]{#}]ã/',
'/ã[\d-\s]ã/' => 'False [] range "\d-" {#} m/ã[\d-{#}\s]ã/',
=> 'False [] range "\d-" {#} m/ã[\d-{#}\s]ã/',
'/ã[a\zb]ã/' => 'Unrecognized escape \z in character class passed through {#} m/ã[a\z{#}b]ã/',
=> 'Unrecognized escape \z in character class {#} m/ã[a\z{#}b]ã/',
);
# Tests involving a user-defined charnames translator are in pat_advanced.t
# In the following arrays of warnings, the value can be an array of things to
# expect. If the empty string, it means no warning should be raised.
( run in 3.470 seconds using v1.01-cache-2.11-cpan-c221a9de4ec )