isn't that the same in any expression-oriented language ?
E.g. in ruby this could be
puts $1 if /(\d+)/ =~ 'test 123' # perl-like
if m = /(\d+)/.match('test 123') then puts m[1] end # perl-less
Perl's regexes do more things perhaps, but this is a relatively common thing, I believe.