my $str1 = "ATC[TG]C[CA]"; (my $glob_pat = $str1) =~ s!\[(.*?)\]! '{' . join(',',split//,$1) . '}'!ge; print "Pattern is $glob_pat\n"; use Data::Dumper; print Dumper([glob($glob_pat)]);