in reply to Regex matching words with numbers, but not numbers.

Just use two regexen, and consider a match successful only if the first regex matches but the second doesn’t. For example, to match sequences containing only letters, digits, and hyphens, but not containing all digits:

#! perl use strict; use warnings; my $re1 = qr{ ^ [\w-]+ $ }x; my $re2 = qr{ ^ \d+ $ }x; while (<DATA>) { chomp; printf "%s : %s\n", $_, /$re1/ && !/$re2/ ? 'yes' : 'no'; } __DATA__ foo 1foo foo2 3foo4 foo5bar 87 foo-bar foo42-baz foo17@12

Output:

17:03 >perl 950_SoPW.pl foo : yes 1foo : yes foo2 : yes 3foo4 : yes foo5bar : yes 87 : no foo-bar : yes foo42-baz : yes foo17@12 : no 17:04 >

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,