in reply to regexp question
fwiw, the square bracket character class has been a part of regex since prior to Perl existing. I remember way back in the daze when I was learning to grep commandline in a basic Unix course this being a feature of regex. Seems kinda silly to debate an accepted convention that's been around since prior to when you were born.
Honestly this is not the most confusing aspect of regex. Regex by its nature is an abreviated notation and therefore a challenge to make readable. Perl has (imo) the best featureset of any language when it comes to making regexes understandable, but it's still regex... which means one treads a cryptic realm of magic and wonder... :)