Вероятно, вас укусила печально известная ошибка IE regex . Вы должны быть в состоянии обойти это, сделав проверку длины, как и другие условия, и поставив ее первой.
^(?=.{7,}$)(?=.*\d)(?=.*[a-zA-Z]{2}).*
Но я думаю, что вижу другую проблему. (?=.*[a-zA-Z]{2})
соответствует двум последовательным буквам; это действительно твое намерение? Если вы хотите указать как минимум две буквы, но не обязательно подряд, вы должны использовать (?=.*[a-zA-Z].*[a-zA-Z])
.