Como @cuonglm disse, *
significa 0 ou mais. Desde que você marcou isto com Perl, eu suponho que você esteja usando o motor regex do Perl, o que significa que você pode usar +
: 1 ou mais. Então, a substituição que você procura seria uma das seguintes:
-
Corresponda caracteres alfanuméricos ou sublinhados:
s/\w+&\w+/\$$&\$/g
-
Corresponder somente letras (observe o
i
, o que torna o caso insensitivo):s/[a-z]+&[a-z]+/\$$&\$/gi
-
Corresponda apenas as "palavras", verifique se a palavra inteira contém apenas letras:
s/\b[a-z]+&[a-z]+\b/\$$&\$/gi