print "- " =~ /\s*\p{Dash}\s*/; # 1 print "- " =~ /\s*\p{Dash}{1}\s*/; # 2 print "- " =~ /\s*-\s*/; # 3 #### Compiling REx "\s*\p{Dash}\s*" synthetic stclass "ANYOF[\11\12\14\15 ][{unicode_all}+utf8::Dash]". Final program: 1: STAR (3) 2: SPACE (0) 3: ANYOF[{unicode}+utf8::Dash] (15) 15: STAR (17) 16: SPACE (0) 17: END (0) stclass ANYOF[\11\12\14\15 ][{unicode_all}+utf8::Dash] minlen 1 Matching REx "\s*\p{Dash}\s*" against "- " Matching stclass ANYOF[\11\12\14\15 ][{unicode_all}+utf8::Dash] against "- " (2 chars) 1 <-> < > | 1:STAR(3) SPACE can match 1 times out of 2147483647... 2 <- > <> | 3: ANYOF[{unicode}+utf8::Dash](15) failed... 1 <-> < > | 3: ANYOF[{unicode}\-...+utf8::Dash](15) failed... failed... Contradicts stclass... [regexec_flags] Match failed Freeing REx: "\s*\p{Dash}\s*"