方括号表达式易于表示“匹配于此字符,或其他字符,或 ...”,但不能指定“匹配于这个序列,或其他序列,或 ...”。要达到后者的目的,你可以使用交替运算符,即 | 。你可以简单写好两个字符序列,再以 | 将其隔开。例如 read | write 匹配于 read 与 write 两者。可以使用多个该符号:sleep|doze|dream|nodoff|slumber 匹配于5个表达式。
| 字符为 ERE 运算符里优先级最低的。因此,左边会一路扩展到运算符左边,一直到一个前置 | 字符,或者是到另一个正则表达式的起始。同样地,| 的右边也是一路扩展到运算符的右边,一直到后续的 | 字符,或是到整个正则表达式的结尾。