use warnings; use strict; use Data::Dumper; if ('1234' =~ /(?1)(?2)(?3)(?4)/) { print Dumper(\%-); } __END__ $VAR1 = { 'A' => [ '1', '3' ], 'B' => [ '2', '4' ] };