Wenn du das ganz sauber machen willst benötigst du einen relativ komplizierten regulären Ausdruck.
Eigentlich nicht - solche aufgaben sind mir regulären Ausdrücken sogar relativ einfach und kontrollierbar zu lösen. Dennoch würde ich einen XML-Parser oder vergleichbares empfehlen.