Witam kolegów

Nazwa mojego tematu jest pewnie straaasznie chaotyczna, ale trudno opisać zagadnienie które mnie interesuje ;p
Nie ma co się rozwodzić po i tak nie da się tego po polsku opisać, spójrzcie na fragment kodu:
<?php
$test['pierwsza'] = 'wartosc pierwszej';
$test['druga'] = 'wartosc drugiej';
$test['trzecia'] = 'wartosc trzeciej';
echo eregi_replace( '<!~([a-z0-9_-]+)>', $test["1"], 'tekkkst..= <!~pierwsza> =tekst'); ?>
Oczywiście powyższy kod nie działa

Co chcę osiągnąć - wystąpienie znaków <!~coś~> zamienić wartością będącą w tablicy asocjacyjnej pod indeksem "coś".. Oczywiście jak wpiszę np <!~druga~>, wyrażenie powinno mi tego stringa zamienić na wartość $test['druga'], czyli dokładnie na 'wartosć drugiej' .. Kombinowałem na różne sposoby, bezskutecznie a poziom mojej cierpliwości się kończy

Ktoś jest w stanie mi pomóc ?

-- EDIT:
Próbówłem jeszcze puścić to przez inną metodę żeby zobaczyć co tam de facto się dzieje:
<?php
eregi_replace( '<!~([a-z0-9_-]+)>', $this->GetVar("1"), 'dupa= <!~druga> =dupa'); ...
private function GetVar($id) {
}
?>
Tak do metody GetVar przechodzi i wyświetlany jest normaln string \1, jeśli wywołam ją przez
<?php
eregi_replace( '<!~([a-z0-9_-]+)>', $this->GetVar("1"), 'dupa= <!~druga> =dupa'); ?>
To w ogóle powstaje niezły bigos bo wyświetla mi w przeglądarce napis SOH z górnym indeksem a w źródle jest kulka takie coś jak <li> ;P
Ktoś potrafi mi rozjaśnić horyzont ? ;\