The problem is that you're using a hyphen "-" in the middle of a character set "[(-_]". When used between two characters in a character set, "-" defines a range for all characters between the codepoints (ASCII numbers) of the two characters. In your case it's between "(" (codepoint: 40) and "_" (codepoint: 95), meaning all characters with codepoints between 40-95 will be matched (the number 5 happens to be codepoint 53).

The solution is simple: put the "-" at the end of the character set so that it's clear it isn't meant to define a range.


Spelling mistakes, grammatical errors, and stupid comments are intentional.