non sono un grande esperto di espressioni regolari, ma se nel tuo primo pattern correggi come qua sotto, dovresti avere già i valori dei tag "longitudine" e "latitudine" nell'array che ti restuisce preg_match_all
tu invece fai la stessa cosa due volte e non mi sembra molto efficienteCodice PHP:
$pattern = '/\[TAG1 tipo="coordinate" latitudine="(\d*\.?\d+)" longitudine="(\d*\.?\d+)"/i';