Регулярное выражение для проверки правильности серии советского и российского паспорта одновременно?
Относительно советского паспорта:
otvety.google.ru/otvety/thread?tid=7c171e25e79fc216

Серия советского паспорта образца 1974 г. состоит из римских цифр (с I до XXXIII) и двух заглавных букв. Цифры отражают последовательность выдачи паспортов. Буквы — это код региона. У каждого региона свой код. В Москве, например, это — МЮ и СБ, в Краснодарском крае — АГ и ТМ, в Кировской области — ИР и т. д. Это не значит, что у москвичей не может быть кировских паспортов и наоборот (надо учитывать фактор миграции), но если вдруг в московских подписных листах пойдут сплошь кировские или краснодарские серии, это должно насторожить контролера.

Все номера паспортов СССР находятся в диапазоне цифр 500 000-750 000. Если Вам попался паспорт с иными номерами — это либо описка, либо откровенная липа. Строчка выбраковывается в любом случае, а подписные листы данного сборщика подлежат пристрастной проверке.
Регулярка может быть такая:
(?:[IVX]{2}|[0-9]{2})[0-9]{2}[\s\-](?:[А-Я]{2}|[0-9]{3}\s*[0-9]{3})
Либо такая:
(?:[IVX]{2}[0-9]{2}\-[А-Я]{2}|[0-9]{4}\s*[0-9]{3}\s*[0-9]{3})

Писал на коленке, нужно проверять =)