* `z P` (where P is any pattern) is equivalent to `z` because P is never evaluated
* `P z` is also equivalent to `z`, since backtracking over P will reset all its capture groups
* `z|P` is equivalent to `P`
* `(?=z)` is equivalent to `z`
* `(?!z)` is equivalent to the empty pattern