Сравнение с несколькими необязательными символами

Русские слова изменяются по числам и падежам. Иногда нужно обнаружить все или некоторые формы какого-либо слова. Сравнение со всеми нужными формами может по¬требовать применения нескольких необязательных символов в регулярном выражении.
Рассмотрим различные формы слова брелок. В их число, в частности, входят:
□ брелок (единственное число, именительный падеж);
□ брелка (единственное число, родительный падеж, без гласной "о");
□ брелока (единственное число, родительный падеж, с гласной "о");
□ брелки (множественное число, именительный падеж, без гласной "о");
□ брелоки (множественное число, именительный падеж, с гласной "о");
□ брелкам (множественное число, дательный падеж, без гласной "о");
□ брелокам (множественное число, дательный падеж, с гласной "о").
Все эти семь форм слова описывает следующее регулярное выражение, содержа¬щее три необязательных символа:
брело?ки?а?м?
Если попытаться выразить эту запись менее формально, то получится следующая постановка задачи:
Найти слово брелок в именительном и родительном падеже единственного числа, а так¬же в именительном и дательном падеже множественного числа.
Сначала мы выполним упражнение, а потом я объясню, как оно работает и какие имеет ограничения.