?, *, +,
{}) that are greedy rather than the whole pattern; Perl prefers local greed
and immediate gratification to overall greed. To get non-greedy versions of
the same quantifiers, use (??, *?, +?, {}?).
An example:
$s1 = $s2 = "I am very very cold";
$s1 =~ s/ve.*y //; # I am cold
$s2 =~ s/ve.*?y //; # I am very cold
Notice how the second substitution stopped matching as soon as it
encountered ``y ''. The *? quantifier effectively tells the regular expression engine to find a match
as quickly as possible and pass control on to whatever is next in line,
like you would if you were playing hot potato.