use re 'eval'; $a='12345678910-=[];\'#/.,\\-!\"\u00A3$%^&*()_+{}~@:<>?| \u2013'; $a=~ s/((\\u....)|(.))(?{ if (defined $2){'y'} elsif(defined $3) {'x'} else{$1} })/$^R/xg; print $a;