my $str = '0000000000'; my @matched = $str =~ / [^\d]* (?:\b(?: 0{10,} | 1{10,} | 2{10,} | 3{10,} | 4{10,} | 5{10,} | 6{10,} | 7{10,} | 8{10,} | 9{10,})\b [^\d]* )* (\b\d{10,}\b) (?:[^\d]* \b(?: 0{10,} | 1{10,} | 2{10,} | 3{10,} | 4{10,} | 5{10,} | 6{10,} | 7{10,} | 8{10,} | 9{10,})\b )* /gx; say "@matched"; __END__ 0000000000