Hola, bueno el asunto es asi.
 
Supongan que tengo una cadena con el siguiente texto de fantasia 
Hola me llamo [TAG]Juan[/TAG] y [TAG]Pedro[/TAG] y somos amigos de [TAG]Carlos[/TAG]  
ENtonces, yo quiero recolectar los 3 nombres Juan, Pedro, y Carlos 
Lo que yo hice fue lo siguiente    
El asunto es que eso me devuelve como resultado el contenido entre LA PRIMER APARICION DE [TAG] Y LA ULTIMA APARICION DE [/TAG] (logico no ? si nos basamos en mi expresion jaja) 
Lo que yo hice fue, a ese resultado, splitarlo con preg_split, pero, o sea, creo que no es una forma optima 

: quisiera saber si hay alguna forma de hacer esto directamente sobre el patron de la expresion regular. 
Gracias de antemano