Регулярное выражение на номера различных документов

Есть документы, где их номер может колебаться от таких сложных значений, как: Г-053425, 58525-GH, 8683-4139, АВ-432433, АВ-2342-КП-211, 4543-КЕ-343.2146, С-RU.АЛ43.В.64664, RU P001 П000116, так и простых перечислений чисел № 20201010, 76864963247

Проблема в том, что не могу написать регулярное выражение, подходящее заданным условиям. Допустим, я написал на номер Г-053425 регулярку: [аА-яЯ,aA-zZ]{1,4}[. -]{0,1}[0-9]{1,14} , как мне применить ее уже на номер 58525-GH ведь выражение уже будет искать сначала вхождение букв? Можно конечно так [аА-яЯ,aA-zZ]{0,4}[. -]{0,1}[0-9]{1,14}[. -]{0,1}[аА-яЯ,aA-zZ]{0,4} но есть ли более элегантное решение? Чтобы эти комбинации проверки чисел и букв со знаками разделителями[.- ] чередовались

Проследил несколько закономерностей в этих номерах:

  1. Количество последовательных букв(используются одновременно латиница и кириллица) не может превышать 4
  2. Сам номер документа не может быть меньше 4 символов и превышать больше 20.
  3. Номер разделяется на блоки в основном из таких символов: [-.пробел] , реже: [\/]

С учетом ответа от roddar92 у меня получилось так, но решение пока далеко до истины

 (?:[а-яА-Я,a-zA-Z]{0,4}[-.]{0,1})+(?:\d{2,15}[-.]{0,1})+

Ответы (1 шт):

Автор решения: roddar92

Сразу следует отметить то, чтобы работать с алфавитным диапазоном, то надо поменять следующее правило:

    [аА-яЯ] => [а-яА-Я] 

Чтобы повторить группу символов (к примеру, чисел через дефис) более одного раза, надо воспользоваться оператором +:

    (?:[-. ]\d{3,})+
→ Ссылка