Часть [vmVM]*
означает , совпадающие с буквами v, m, V или M ноль или более раз , поэтому нулевое повторение даст вам строку, заканчивающуюся только на .companyname.local
. Если вы хотите быть настолько ограничительным, насколько ваш вопрос звучит, просто измените его на что-то вроде:
/^[a-zA-Z0-9\-]*\-[vV][mM]\.companyname\.local$/
Или, если вы хотите хотя бы одну букву / цифру в имени хоста, что-то вроде:
/^[a-zA-Z0-9][a-zA-Z0-9\-]*\-[vV][mM]\.companyname\.local$/
Редактировать: Упс, опечатка.