sub captures { my $re = shift; return scalar ( @_ = '' =~ /(?:($re))?/ ) - 1; }