The ^ metacharacter has different meanings in different parts of a regex.
in reply to Re^2: Return value from a binding operator?
in thread Return value from a binding operator?
Normally, it does mean "start of line", as you thought. If the regex were m!^/!, then it would match lines beginning with /.
However, as the first character in a character class, it negates the class, so [^/] means "match any character except /". (But, again, that's only if it's the first character in the class - [/^] means "match either a / or a ^". And [^/^] would match any character except those two.)