Someone says "Foo is true"
regexp ^Someone says \"Foo is true\"$
that sets a variable to 1 or true or whatever method you want to check for in the second trigger. Also enables the second trigger, that matches on * or using regexp ^(.*?)$
and the second trigger does an EnableTrigger("name here",false) and checks if %1 (wildcard 1) is whatever you DON'T want it to match on, and if it is returns, else do whatever you want to do.
Another method is to use multi-line trigger as follows...
^Someone says \"Foo is true\"\n(?!Someone else says \"No it isn\'t\!\")$
That will match on any 2 lines that start with
Someone says "Foo is true"
where the second line is NOT
Someone else says "No it isn't!"
Yet another method is having the first line in its own trigger, that in turn sets a variable to a true value, and makes a one shot timer that checks the value of said variable for false. And have another trigger set to the exact line that you DON'T want it to match on, have that set the variable to false, and when the timer fires and checks the variable, if true then it was something else, so have it do its stuff, if false then do nothing.
This last one came to me after having read over my post the 3rd time :)
I'd like to use a multi-line trigger to do it, because I'm capturing lots of wildcards from the real trigger I'm using and doing that with the variables would be really messy.
With the example you gave,
^Someone says \"Foo is true\"\n(?!Someone else says \"No it isn\'t\!\")$
I tried it out but I ran into problems because it'd match on a single line before the lookahead affected it. What I need is something that will match
Someone says "Foo is true"
where the second line is NOT
Someone else says "No it isn't!" and IS something else (rather than nill)