Вам нужно убедиться, что шаблон соответствует строке whole , поскольку по умолчанию [regex HTML5 pattern привязано по умолчанию.
Образец (?=.*\d)(?=.*[A-Z]).*
будет преобразован в ^(?:(?=.*\d)(?=.*[A-Z]).*)$
, и он будет соответствовать:
^
- начало строки (?:
- запуск группы, не содержащей захвата: (?=.*\d)
- проверка положительного результата, чтобы убедиться, что есть хотя бы 1 цифра (?=.*[A-Z])
- положительная контрольная проверка, чтобы убедиться, что есть хотя бы 1 буква в верхнем регистре .*
- любые символы 0+, жадно, вплоть до конца строки )
- конец группы, не захватывающей захват $
- конец строки.