Proszę bardzo :
<?php
$pattern = '#.*\$\*DOLACZ_MODUL\*\$\*(.*)\*\$.*#';
$target = 'jakiś tekst.. tekst przykładowy... $*DOLACZ_MODUL*$*GALERIA*1*active*$ więcej tekstu test test test
jakiś tekst.. tekst przykładowy... $*DOLACZ_MODUL*$*Gelerioza*$ więcej tekstu test test test
jakiś tekst.. tekst przykładowy... $*DOLACZ_MODUL*$*Bitwa*pod*grunwaldem*1410*$ więcej tekstu test test test';// 3 różne do złapania 
print_r($catched[1
]);// Wynik preg match foreach($catched[1] as $zlapane){
$podzielone[] = explode('*',$zlapane); }
print_r($podzielone);// Rozdzielona tablica ?>
Powyższy skrypt na localhoscie produkuje :
Kod
Array
(
[0] => GALERIA*1*active
[1] => Gelerioza
[2] => Bitwa*pod*grunwaldem*1410
)
Array
(
[0] => Array
(
[0] => GALERIA
[1] => 1
[2] => active
)
[1] => Array
(
[0] => Gelerioza
)
[2] => Array
(
[0] => Bitwa
[1] => pod
[2] => grunwaldem
[3] => 1410
)
)
Czyli wszystko ładnie wyświetliłem , oczywiście w teście użyłem kilku różnych ale niema różnicy ile masz do znalezienia 1 czy 100 . (przy 0 się wykrzaczy ale nie chciało mi się tego uwzględniać.)
EDIT : Zmieniłem testowy string i wyświetlenia , mam nadzieje że to rozwieję wątpliwości. (REG exp znajdzie każdy znak pomiędzy
$*DOLACZ_MODUL*$* a
*$ potem rozdzielam na tablice(
explode na znaku
*) , przez co ładnie się array'e rozchodzą niezależnie od ilości parametrów ).
EDIT 2 (offtopic) :
Cytat(evolucja @ 7.05.2011, 17:43:29 )

Wdzięczny za pomoc będę.
Potężny stałeś się, Dooku. Ciemną stronę w tobie wyczuwam.
Zobacz tutaj