http://www.perlmonks.org?node_id=457342


in reply to Re^2: regex to remove all non a-z and spaces
in thread regex to remove all non a-z and spaces

usually, ^ does mean at the beginning, but the [ and ] make a character class, and a ^ at the beginning of a character class means "not any of these".

Update:
Oddly enough, it doesn't explicitly say that in perlre. however, it does say
You can negate the [::] character classes by prefixing the class name with a '^'. This is a Perl extension.