Implement rule S5855 by visiting all alternations (DisjunctionTrees) and checking whether any of its alternatives is a superset of another.
Some times something like "(a)|(.)" can be intentional because the capturing groups tell you which alternative was matched, so if one of the alternatives contains a capturing group, an issue should only be raised if the alternative that's a superset comes first.
So "a|.", ".|a" and "(.)|(a)" should all raise issues, but "(a)|(.)" should not.