in reply to regexp question

Please wrap code in <code> tags -- see Markup in the Monastery. Note that your character class got linkified because you did not do this.

This behavior is documented in the Modifiers section of perlre:

m

Treat string as multiple lines. That is, change "^" and "$" from matching the start or end of the string to matching the start or end of any line anywhere within the string.

s

Treat string as single line. That is, change "." to match any character whatsoever, even a newline, which normally it would not match.

Used together, as /ms, they let the "." match any character whatsoever, while still allowing "^" and "$" to match, respectively, just after and just before newlines within the string.