printf "(%s) match (%d)\n",$_, 0+/[^\d\D]/ for qw[ !! aa AA 11 99 )( :D .. ]; __END__ (!!) match (0) (aa) match (0) (AA) match (0) (11) match (0) (99) match (0) ()() match (0) (:D) match (0) (..) match (0)