my (@matches) = ($line =~ $re) if (defined $&) { $cb->(@matches); last; } #### if ( my (@caps) = ($line =~ $re) ) { @caps = () if $caps[0] ne $1; # reset pseudo captures $cb->(@caps); last; }