Шаблон, который у вас есть, состоит только из утверждений нулевой ширины, из заглядываний. Они не потребляют совпадающий текст, поэтому значение совпадения после совпадения с регулярным выражением является пустой строкой. RegularExpressionValidator требует полного совпадения строки (то есть совпадающая строка должна быть всей входной строкой).
Итак, вместо (?=(^[a-zA-Z0-9]{6,16})$)(?=.*\d)(?=.*[A-Z])
используйте
^(?=.*\d)(?=.*[A-Z])[a-zA-Z0-9]{6,16}$
Он обеспечит наличие в строке цифры и буквы ASCII в верхнем регистре, а затем будет соответствовать (потреблять) от 6 до 16 букв и цифр ASCII.