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: <%-{-{-{-<