I have regex that matches words fine except if they contain a special character such as ~Query which is the name of a member of a C++ class. Need to use word boundary as sh
Assuming you don't need to check the contents of $match (i.e. it always contains a valid identifier) you can write this
$match
$key =~ /(?
which simply checks that the string in $match isn't preceded or followed by alphanumerics, underscores or tildes