Мой голос за самый лаконичный:
i^[a-z][a-z0-9]\d{2}$
i
в начале означает «без учета регистра», поэтому вам не нужно иметь кучу A-Za-z
s. Некоторые диалекты делают флаги по-разному, поэтому убедитесь, что вы делаете это правильно.
\d
означает «одну цифру». Это так же, как [0-9]
. Однако некоторые диалекты не распознают его, поэтому, если у вас его нет, используйте [0-9]
.
Наконец, некоторые (очень ограниченные) диалекты не принимают {2}
(что означает «ровно два раза»). Если у вас нет, вам понадобится \d\d
.
Итак, теперь, когда вы увидели самый лаконичный, вот наименее лаконичный (но все равно эквивалентный), который вы должны использовать, только если ваш диалект чрезвычайно ограничен и не распознает ни одного из этих ярлыков:
^[A-Za-z][A-Za-z0-9][0-9][0-9]$
Я определенно предпочитаю первое (более читабельное, ИМХО), но, увы, иногда люди вынуждены работать с такими ограничениями.