use strict;
my $str = 'Ateles_geoffroyi GATGAGTGTGGCAAGGCCCAAGCGGAAGTGCCG--GTTGCT
Ateles_hybridus GATGAGTGTGGCAAGGCCCAAGCGGAAGTGCCG--GTTGCT
Ateles_fusciceps GATGAGTGTGGCAAGGCCCAAGCGGAAGTGC??????????
Ateles_chamek GATGAGTGTGGCAAGGCCCA?????????????????????
Ateles_paniscus ?????????????????????????????????????????
Brachyteles_arachnoides GATGAGTGTGGCAAGGCCCAAGCGGAAGT????????????
Brachyteles_hypoxanthus GATGAGTGTGGCAAG??????????????????????????
Lagothrix_cana GATGAGTGTGGCAAGGCCCAAGCGGAAGTGCCG--GTTGCT
Lagothrix_lagotricha GATGAGTGTGGCAAGGCCCAAGCGGAAGTGCCG--GTTGCT
Alouatta_belzebul ?????????????????????????????????????????
Alouatta_caraya ?????????????????????????????????????????
Alouatta_sara GATGAATGTGGCAAGGCCCAAGCAGAAGTGCCG--GTTGCT
Alouatta_palliata GATGAATGTGGCAAGGCCCAAGCAGAAGTGCCG--GTTGCT
Callicebus_brunneus ?????????????????????????????????????????
Callicebus_moloch GATGAGTGTGGCAAGGCCCAAGCAGAAGTGCCG--G?????
Callicebus_cupreus GATGAGTGTGGCAAGGCCCAAGCAGAAGTGCCG--GTTGCT
Callicebus_caligatus GATGAGTGTGGCAAGGCCCAAGCAGAAGTGCCG--GTTGCT
Callicebus_donacophilus GATGAGTGTGGCAAGGCCCAAGCAGAAGTGCCG--GTTGCT
Callicebus_coimbrai GATGAGTGTGGCAAGGCCCAAGCGGAAGTGCCG--GTTGCT
Callicebus_personatus GATGAGTGTGGCAAGGCCCAAGCGGAA??????????????
Callicebus_nigrifrons GATGAGTGTGGCAAGGCCCAAGCGGAAGTGCCG--GTTGCT
Cacajao_melanocephalus GATGAGTGTGGCAAAGCCCA?????????????????????
Cacajao_calvus GATGAGTGTGGCAAGGCCCAAGCGGAAGTGCCG--GTTGCT
Chiropotes_israelita GATGAGTGTGGCAAGGCCCAAGCGGAAGTGCCG--GTTGCT
Chiropotes_satanas_chiro ?????????????????????????????????????????
Pithecia_irrorata GATGAGTGTGGCAAGGCCCAAGCGGAAGTGCCG--G?????
Pithecia_pithecia GATGAGTGTGGCAAGGCCCAAGCGGAAGTGCCG--GTTGCT
Tarsius_bancanus ?????????????????????????????????????????
Tarsius_syrichta ?????????????????????????????????????????
Lepilemur_ankaranensis AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Lepilemur_septentrionali AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Lepilemur_dorsalis AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Lepilemur_ruficaudatus AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Lepilemur_jamesi AACGAGTGTGGCAAGGCCCAGG???????????????????
Microcebus_murinus_subsp AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Microcebus_murinus_subsp ?????????????????????????????????????????
Mirza_zaza AACGAGTGTGGCAAGGCCCAGGCAGAAGTTCCG--GTTGCT
Cheirogaleus_medius ?????????????????????????????????????????
Propithecus_verreauxi_co ?????????????????????????????????????????
Propithecus_verreauxi AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Propithecus_tattersalli AACGAGTGTGGCAAGGCCCAGGCTGAAGTTCCG--GTTGCT
Propithecus_diadema AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Propithecus_edwardsi AACGAGTGTGGCAAGGCCCAGGCG?????????????????
Avahi_laniger AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Eulemur_rufus AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Eulemur_collaris AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Eulemur_fulvus AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Eulemur_albifrons AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Eulemur_sanfordi AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Eulemur_mongoz AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Eulemur_macaco AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Eulemur_macaco_flavifron AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Eulemur_coronatus AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Eulemur_rubriventer AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Hapalemur_occidentalis AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Hapalemur_griseus AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Lemur_catta AACGAGTGTGGCAAGGCCCAGGCGGAAGTTCCG--GTTGCT
Varecia_variegata_varieg AACGAGTGTGGCAAGGCCCAGGCAGAAGTTCCG--GTTGCT
Varecia_variegata_rubra AACGAGTGTGGCAAGGCCCAGGCAGAAGTTCCG--GTTGCT
Daubentonia_madagascarie ?????????????????????????????????????????
Nycticebus_bengalensis AACGAGTGTGGCAAGGCCCAGGCAGAAGTTCCG--GTTGCT
Nycticebus_coucang AACGAGTGTGGCAAGGCCCAGGCAGAAGTTCCG--GTTGCT
Nycticebus_pygmaeus AACGAGTATGGCAAGGCCCAGGCAGAAGTTCCG--GTTGCT
Loris_tardigradus AACGAGTGTGGCAAGGCCCAGGCAGAAGTTCCG--GTTGCT
Arctocebus_calabarensis AACGAGTGTGGCAAGGCCCAGGCAGAAGTTCCG--GTTGCT
Perodicticus_potto AACGAGTGTGGCAAGGCCCAGGCAGAAGTTCCG--GTTGCT
Otolemur_garnetti AACGAGTGTGGCAAGGCCCAGGCAGAAGTTCCG--GTTGCT
Otolemur_crassicaudatus AACGAGTGTGGCAAGGCCCAGGCAGAAGTTCCG--GTTGCT
Galago_moholi ?????????????????????????????????????????
Galago_senegalensis ?????????????????????????????????????????
Galago_thomasi AACGAGTGTGGCAAGGCCCAGGCG?????????????????
Galeopterus_variegatus GATGAGTGTGGCAAGGCCCAAGCAGAAGTTCCG--G?????
Cynocephalus_volans GATGAGTGTGGCAAGGCCCAAGCAGAAGTCCCG--GTTGCT
Tupaia_glis ?????????????????????????????????????????
Tupaia_minor ?????????????????????????????????????????
rabbit_rabbit_rabbit ?????????????????????????????????????????
';
my $regex = qr/\b(?<=\w)\s{20}/mp;
if ( $str =~ /$regex/g ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html