in reply to a regex which can detect if a string have all of some characters

Order matters in a regular expression, so I think your only option is to use a loop to check for all of the characters (update: this is essentially the same as your code):
sub has_all { my $text = shift; for my $c ('a', 'r', 'z', 'x') { return 0 unless $text =~ m/$c/; } 1; }
Update: Well, I guess I was wrong, and it can be done in a single regex. Now I'm going to have to start thinking about how else I can use lookaheads.
  • Comment on Re: a regex which can detect if a string have all of some characters
  • Download Code