Où (?< ! ... ) est (dans les regex de Perl) le look-behind négatif. Elle se lit comme suit : un <, puis un mot, puis tout ce qui n’est pas un >, dont le dernier ne peut être un /, suivi de >.
Notez que cela permet des choses comme <a/ > (tout comme la regex originale), donc si vous voulez quelque chose de plus restrictif, vous devez créer une expression régulière qui correspond aux paires d’attributs séparées par des espaces.