Lookbehind w wyrażeniach regularnych PHP

W poprzedniej lekcji omówiliśmy lookahead. Analogicznie istnieje pozytywny lookbehind - (?<= ). W następnym przykładzie zamiana nastąpi tylko, jeśli przed 'aaa' stoi 'x':

php<?php
  preg_replace('#(?<=x)aaa#', '!', 'xaaa'); // zwróci 'x!'
?>

I jest też negatywny lookbehind - (?<! ). W następnym przykładzie zamiana nastąpi tylko, jeśli przed 'aaa' nie stoi 'x':

php<?php
  preg_replace('#(?<!x)aaa#', '!', 'baaa'); // zwróci 'b!'
?>
Задание 1

Dany jest ciąg ze zmiennymi:

php<?php
  $str = '$aaa $bbb $ccc';
?>

Pobierz tablicę nazw zmiennych z tego ciągu (bez dolara).