Di solito cerco di evitare i quantificatori lazy, ma nel caso di "cerca solo se la stringa (non) contiene xyz" sono la soluzione più semplice. L'uso di due lookahead fa al caso tuo, anche se può essere un po' pesante:
(?=.*?PAROLA)(?!.*?DEF)(.+)
Da sostituire con "DEF$1". Testa su
http://www.gskinner.com/RegExr/