After looking at your regexp I took to simplifying my needs with:
$word =~ s/^[^\w\d]+(.*?)[^\w\d]+$/$1/;
My intention is remove everything that is not a letter or number up to the first letter, pull everything up till the last non letter or digit. When I look at it it makes sense, but my testing it does not work.
It works on the simple example I gave for 'Wilmer!'. I was running word count with a script as the input and the odd results I was seeing were the syntax in the script. I apologize.