To further add to weedpacket's mentioning of not needing to escape the dot, most meta characters lose their special meaning within the character class (the dot is one of them). Some meta characters might retain their special status, depending on their location within the class - which brings me to this point... note the position of the dash in your pattern (it's nested between the shorthand whitespace character class \s and the underscore.
In essence, you have created a range between whitespace characters and the underscore (much like a-z creates a range between a and z). As a rule, if you wish the dash to be treated as a literal, you should either place it as the very first or last character in the character class, - or - otherwise escape it: - If not, you might get undesireable results depending on the source string in question.
EDIT - Come to think of it, it might not effect ranges of shorthand classes (not entirely sure).. but none the less, in either case, it's a good habit to manage your dashes correctly.