@EveHasWords Nice use of regular expressions and nice explainer!
The A-z range is a little bit unfortunate since, in addition to the upper and lower case letters, it also includes all of [\]^_ plus backtick. I would suggest writing out A-Za-z explicitly, though for this use case it probably doesn't hurt anything.
Which variant of regular expression syntax allows backslash-escaping dashes in character classes? I'm used to them requiring that dash be the last thing listed in the character class if you want to include it literally, so [ax-] if you want to match a, x, or -. A quick test with grep shows that [a\-b] matches anything between \ and b, including ]^_. But every regex implementation is a little bit different so I can certainly believe backslash escapes work in some of them.