Post alterado
Assim, parece que alguns (mais?) motores Regex só funcionam com um lookbehind de comprimento fixo. No entanto, eles parecem bem para aceitar um lookahead de comprimento variável. Não tenho certeza de qual é o seu caso de uso ou de como seria viável, mas uma ideia poderia ser reverter sua string e usar:
rab(?!.*oof)
Claro,pareceridículo,eeunãoseicomovocêestáusandoouquãoútilserá.AmaiorpartedaminhaexperiênciacomoRegextemusadoo.NETe,namaioriadasvezes,nãoénecessáriolookbehinds.Apenasumaideiaparavocê..!
OriginalPost-SófuncionacomdeterminadosmecanismosRegex(testadosusandoo.NET)
Experimenteoseguinteregex:
(?<!foo(?:.*)?)bar
Issoadicionaumgrupoopcionaldenãocapturadentrodamesmaaparêncianegativaportrás.