Because once Perl sees that you need one of these variables anywhere in the
program, it has to provide them on each and every pattern match. The same
mechanism that handles these provides for the use of $1, $2, etc., so you
pay the same price for each regex that contains capturing parentheses. But
if you never use $&, etc., in your script, then regexes
without capturing parens won't be penalized. So avoid $&, $', and $` if you
can, but if you can't (and some algorithms really appreciate them), once
you've used them once, use them at will, because you've already paid the
price.