(?!\.php) é um operador perl regexp. less geralmente usa a API regexp POSIX do sistema, então expressões regulares estendidas normalmente no GNU em um sistema GNU, vim usa vim expressões regulares.
Em vim , como já mostrado por cuonglm, o equivalente a index(?!\.php) seria index\(\.php\)\@! ou \vindex(\.php)@! .
Para less , em tempo de compilação, você pode escolher a biblioteca / API regex e, como resultado, o tipo de regex 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, less usará POSIX regcomp com REG_EXTENDED, portanto, você obterá as expressões regulares estendidas de seu sistema, então normalmente algo semelhante com grep -E .
Na regexp estendida do GNU, não há um look equivalente por trás ou um operador do futuro.
Você pode fazer isso 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, em seguida, pesquisar por index ( /index ). (você ainda perderia as outras instâncias de index que aparecem em uma linha que também contém index.php ).