PHP Regex отрицательный взгляд за утверждение, preg_replace_callback

Я работаю над скриптом для циклирования через PHP-файлы и при необходимости переименовывает вызовы функций. Этот выбор должен выполняться по следующим правилам:

  • Объявление функции NO // function test () {
  • НЕТ статических функций // SomeClass :: staticMethod ()
  • НЕТ функций класса // $ class-> method ()
  • ТОЛЬКО вызовы функций // myFunction ()

В настоящее время у меня есть следующее регулярное выражение:

preg_replace_callback("/((?<=function\s|\:\:|->)[az][a-zA-Z0-9\_]+)\(.*\)/i", 'test', $content); 
  • Названия функций в основном написаны в виде заметок camelBack.
  • Иногда имена функций содержат символ подчеркивания.

Это положительный взгляд на утверждение: он дает все данные правила, классифицированные NO:

Поэтому я должен изменить его отрицательным образом, но это моя проблема. Когда я пытаюсь, он не работает так, как было предложено.

РЕДАКТИРОВАТЬ

Когда я пытаюсь отрицательно смотреть за утверждение

'?<!' instead of '?<='

В приведенном выше примере он дает следующий результат:

  • est () (отсутствует первый)
  • taticMethod () (сначала отсутствует)
  • ethod () (отсутствует первый)
  • myFunction () (правильно)

Он отбрасывает первую букву функций, которые я не хочу сопоставлять. Есть ли кто-нибудь, кто знает, как сделать трюк?