added support for (?|pattern)