Ваш базовый шаблон правильный, но отрицательный прогноз, который вы используете, чтобы ограничиться отсутствием 0
, 1
и L
, неверен.Попробуйте использовать эту версию:
^(?!.*[01L])[A-Z]{4}[A-Z0-9]{12}$
Демо
Отрицательный взгляд (?!.*[01L])
говорит, чтобы утверждать, что [01L]
нигде не появляетсяв строке.