The simple approach is to stick with one trigger and use a regular expression to match on more than one thing, then the basic idea still works. For example:
<triggers>
<trigger
custom_colour="2"
enabled="y"
match="^A (?:black )?(.*?) (lies here|attacks you|lunges for you)\.$"
name="target"
regexp="y"
send_to="9"
sequence="100"
>
<send>%1</send>
</trigger>
</triggers>
This would match on:
A black something lies here.
A black something lunges for you.
A black something attacks you.
A something attacks you.
However if that won't work have multiple triggers call a simple script, like this:
<triggers>
<trigger
custom_colour="2"
enabled="y"
match="A black * lies here."
script="SetTargetVariable"
sequence="100"
>
</trigger>
</triggers>
Then add a script to your script file, or make a separate script file, like this:
sub SetTargetVariable (sName, sLine, wildcards)
world.SetVariable "target", wildcards (1)
end sub
This script sets the variable "target" to the contents of the first wildcard. You can then have lots of triggers like the above that call the same script. Make sure you enable scripting (language VBscript) and select that file as your script file.