Is there exist regex pattern that includes (part1|part2|...) and [part] that do:
(part1|part2) will match either part 1, or part 2, e.g. leav(e|ing) matches leave and leaving
[part] is an optional word, e.g. cat[s] will match cat and cats
I also want to soild words that must be in every pattern e.g. give cat[s] will match give cat and give cats