@Override
	public Pattern simplifyClone() {
		for (int i = 0; i < orlist.length; ++i) {
			if (orlist[i].alwaysTrue()) {
				return new InstructionPattern(true);
			}
		}

		ArrayList<Object> newlist = new ArrayList<Object>();
		for (int i = 0; i < orlist.length; ++i) {
			if (!orlist[i].alwaysFalse()) {
				newlist.add(orlist[i].simplifyClone());
			}
		}
		if (newlist.size() == 0) {
			return new InstructionPattern(false);
		}
		else if (newlist.size() == 1) {
			return (Pattern) newlist.get(0);
		}
		return new OrPattern(newlist);
	}
A pattern that can be matched by matching any of a list of subpatterns
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/pattern/OrPattern.java