c:\@Work\Perl\monks>perl -wMstrict -le "my @GI = ( 'gi|Q384722390|emb|WP_938420210.1|Gene name', 'gi|342546780|emb|WP_934203412.1|Gene name', 'gi|342546780|emb|WP_93420341211|Gene name', 'gi|987654321|emb|WP_555555555.1|Jean name', ); ;; my @Accession = qw(WP_938420210.1 WP_934203412.1); my ($rx_acc) = map qr{ $_ }xms, join q{|}, map quotemeta, @Accession ; ;; GENE: for my $gi (@GI) { next GENE unless my ($acc) = $gi =~ m{ \b ($rx_acc) \b }xms; print qq{'$acc' in '$gi'}; } " 'WP_938420210.1' in 'gi|Q384722390|emb|WP_938420210.1|Gene name' 'WP_934203412.1' in 'gi|342546780|emb|WP_934203412.1|Gene name' #### my $n = 12; GENE: for my $gi (@GI) { next GENE unless my ($acc) = $gi =~ m{ \A .{$n,}? (?<= [|]) ($rx_acc) (?= [|]) }xmso; print qq{'$acc' in '$gi'}; }