You expect that - character to be parsed as being literal, but it is in fact parsed as a range: _-0 means _ to 0, just like a-z means a to z. However, since _ has a higher character code than 0, you get an error.
In your case, just escape it: \-. This is parsed as the - character.