Well, afaik there are two ways of fixing this:
1) Write another implementation of tail, which take regexps and hook functions to run when the regexps are matched.
I was lazy and went with
2) write a function (I chose bash, I think) which does following
a) Look for linenumber file. If exists, set variable $start to number in file. Else set it to 0.
b) count number of lines in log file, set variable $end with this.
c) using head and tail, read file from line number $start+1 to line number $end , grepping for your regexp(s).
d) If we get a match, send email.
e) write $end to linenumber file.
write the rest of the shell script, which regularly (once a second or whatever) runs the above function.
I chose to save the number of lines in "linenumberfile" since if the watching script should die, we should be able to restart it without getting all the old alarms again.
This should get you started
/fimblo