P:\test>test Xq27-q28 22q12.1 19q 1q25 11p11.2 10q23.31 8p22 7p22 19q12-q13.11 52 15 19q12- #### #! perl -w use strict; my $text = ; my $re_1chrom = '[\dXY]*[pq]\d+(?:.\d+)?'; my $re = qr[\b$re_1chrom(?:-$re_1chrom)?\b]i; my @chroms = ( $text =~ /$re/g ); print $_, $/ for @chroms __END__ P:\test>test Xq27-q28 Xq11-q12 22q12.1 1q42.2-q43 17p11 1q25 13q12.3 11p11.2 10q25 10q23.31 8p22 8p22 7q11.23 7p22 19q12-q13.11 19q12-q13.11