ИМХО, это вопрос стиля, делать ли одно или два утверждения из этого.
Почему бы не проверить это ни в одном из двух приказов, чтобы они могли появиться. (Как и в случае регулярных выражений, у нас нет чего-то вроде счетчика скобок или парантезов, поэтому мы должны соблюдать возможный порядок вещей.
Что можно использовать для perl:
(\d.*[^[:alnum:]])|([^[:alnum:]].*\d)
Может быть легче прочитать два высказывания, особенно потому, что тогда каждое семантическое условие встречается только один раз.