in reply to WebApps and Encoding

corion is right - the string you're matching against doesn't have the UTF8 flag turned on (assuming it is UTF8 which it is in your example).

I run all my POST/GET params through Encode::decode('utf8',$string) before doing any pattern matching.

Not sure what library you're using for parsing the POST/GET data, but libapreq (Apache2::Request etc) tries to figure out in which character set the data is encoded. I use that as a basis for deciding what charset to put into my decode statement.