(?!\.php)é um operador perl regexp. lessgeralmente usa a API POSIX regexp do sistema, de modo que as expressões regulares estendidas do GNU em um sistema GNU vimusam vimexpressões regulares.
Em vim, como já mostrado por cuonglm, o equivalente a index(?!\.php)seria index\(\.php\)\@!ou \vindex(\.php)@!.
Pois less, em tempo de compilação, você pode escolher a biblioteca / API regex e, como resultado, o tipo de expressão regular a ser usado:
--with-regex={auto,gnu,pcre,posix,regcmp,re_comp,
regcomp,regcomp-local,none}
Select a regular expression library auto
Por padrão, porém, lessusará o POSIX regcompcom REG_EXTENDED, para que você obtenha as expressões regulares estendidas do seu sistema, geralmente algo semelhante ao grep -E.
No regexp estendido do GNU, não há um operador equivalente para trás ou para frente.
Você poderia fazer da maneira mais difícil:
index($|[^.]|\.($|([^p]|p($|([^h]|h($|[^p]))))))
Com less, você pode usar a &tecla para filtrar as linhas que contêm index.php( &!index\.php) e depois procurar index( /index). (você ainda sentiria falta das outras instâncias indexque aparecem em uma linha que também contém index.php).