I thinks that Beanshell Assertion is that what you're looking for, it gives as much flexibility as you can think of.
Example AND
-based assertion code will look like:
String response = new String(ResponseData);
if (response.contains(vars.get("v1")) && response.contains(vars.get("v2"))) {
Failure = false;
} else {
Failure = true;
FailureMessage = "Specified conditions were not met";
}
You can refer to How to use BeanShell: JMeter's favorite built-in component guide for more detailed explanation and kind of cookbook.