That regexp would allow a hyphen as the first character. How about this (still assuming .com is the only permitted TLD):
[a-z0-9][a-z0-9-]*[a-z0-9].com$
on further thought, it doesn't matter than it will match underscores, because the list of domains shouldn't have any underscores in them, but you would still want to look for underscores (maybe)