My personal regex best practices (solidly in line with TheDamian's as given in his PBP book) include reserving ^ $ for matching around embedded newlines (which means that the /m regex modifier is always asserted) and using \A \z \Z as "absolute" string start/end anchors. To the best of my recollection, \A \z \Z were introduced with Perl 5, sometime prior to 1996 (update: but see hippo's correction).
... is there something which "\Z" can do which "$" does not??
It's the other way around: ^ $ match also around embedded newlines (with the ever-present /m modifier), while \A \z \Z match only at string start/end; hence, in a sense, they do less. The advantage of this practice is that you never have to think about what ^ $ do; also, \A \z \Z cannot be modified.
Give a man a fish: <%-{-{-{-<
In reply to Re^5: \s does not match end-of-line
by AnomalousMonk
in thread /s does not match end-of-line
by glendeni
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |