The "-\?" indicates a range of characters from "" to "?". However, "" has a higher ASCII code that "?", so it is an invalid range. If your intention was to specify the 3 separate characters "", "-", and "?", then you would need to escape the hyphen just as you did the question mark with a backslash: "-".
Also, note that the special escape character "\w" includes the underscore character (along with letters and numbers), so you can just use "\w" instead of "\w_".