use Encode qw( encode_utf8 ); s{ ^ U\+ ( [0-9a-fA-F]+ ) \z }{ "0x" . uc(unpack("H*", encode_utf8(chr(hex($1))))) }xe;