in reply to String validation
If they do NOT want the underscore, you should technically still try and use the \w anyway, due to the possible use of 'use locale':
if ($string !~ /_/ && $string =~ s!^(\w{4})$!uc($1)!e) { [download]