При описании простых символов мы рассматривали конструкцию [...], которая позволяла нам указывать, что в нужном месте строки должен стоять один из указанных символов. Фактически, это не что иное, как оператор альтернативы, работающий только с отдельными символами (и потому довольно быстро).
Но в языке RegEx есть возможность задавать альтернативы не одиночных символов, а сразу их групп. Это делается при помощи оператора |.
Вот несколько примеров его работы.
r
Выражение 1|2|3 полностью эквивалентно выражению [123], но сопоставление происходит несколько медленнее.
r Выражению aaa|^a|z$|zzz соответствуют строки, в которых есть подстрока aaa, либо которые начинаются на a, либо оканчиваются на z, либо, наконец, содержат подстроку zzz.
r Выражению abc1|abc22|abc333 соответствуют строки, в которых встречаются подстроки abc1, abc22 или abc333 (а возможно, и все три одновременно).