Корректировка регулярного выражения

programmer_2006

Новичок
Корректировка регулярного выражения

$tmp = preg_match( '/[^\!\;:\?>}]*'.$query.'.*[\.\!\?\:\#]/Usi', $str, $mat );

Вот такая вот у меня регулярка. Счас он находит совпадение и выводит его.. но перед искомым словом может стоять большое кол-во предложений. Добавить в регулярку точку тоже не получается так как могут встричатся аббревиатуры.Как мне сделать так что бы до искомого слово могло быть допустим 1-2 предложения.

Например: Ехал федор.В красивый г.Донецк.Искал он там "Женю(искомое слово)".
На данный момент у меня что то типа этого:
День был жаркий.На улице стояла хорошая погода.Нечего не предвещало беды.Ит.д. Ехал федор.В красивый г.Донецк.Искал он там "Женю(искомое слово)".
 
Сверху