RegEx для ввода ФИО с необязательной частью

Как в данном случае правильно указать необязательную группу для ввода, а именно, второе слово в отчестве. Допустим, чаще всего встречается Иванов Иван Иванович, но может быть Иванов Иван Иван оглы. Как сделать так, чтоб (оглы) было необязательной частью для ввода тут:

^[A-ЯЁ][а-яё]+\s[A-ЯЁ][а-яё]+\s[A-ЯЁ][а-яё]+\s[A-ЯЁ][а-яё]+$

Ставлю вопросительный знак, как указание на необязательную часть, но тогда все ломается.


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

Автор решения: Wiktor Stribiżew

Используйте

^[A-ЯЁ][а-яё]+\s[A-ЯЁ][а-яё]+(?:\s[A-ЯЁ][а-яё]+(?:\s[а-яё]+)?)?$
                             ^------------------^^----------^^^

См. пример работы выражения

→ Ссылка