Si "caractère par caractère" signifie d'accéder à chaque caractère par sa position (par exemple $str[$i]) alors je dirais que la réponse est oui dans 99%. Sinon, ça dépend vraiment des cas. Tu as toute latitude pour optimiser ton propre parser et le spécialiser dans un usage particulier alors qu'il est impossible d'optimiser une expression régulière correctement construite. Ensuite, c'est un rapport temps/résultats, ça prend plus de temps à écrire aussi.un expression régulière est plus rapide qu'un traitement caractère par caractère n'est-ce pas ?
Rappelle-moi ce que doit faire exactement ta regex stp et je te ferai le parser à la strspn() qui correspond.
PS: je demande parce que je ne sais pas du tout ce que fait (?(1))
PPS: ok, donc c'est un conditionnal sans clause "false". À part ça j'ai regardé les specs de YAML et... lol. Il faudrait être dingue pour essayer de l'implémenter intégralement.