J'aime toutefois le risque et le surclassement non autorisé (rien à voir, je voulais juste dire "surclassement") et j'ai donc été visiter quelques sites sympatiques, à savoir : Expreg.com et puis directement le manuel PCRE sur le site officiel. Résultat des courses, j'ai finalement trouvé la solution à ce problème ô combien terrible et déroutant.

J'avais donc commencé à analyser l'espression régulière point par point pour trouver l'erreur. Le fichier qui gère les smileys dans DotClear se trouve dans /layout/class.xblog.php et la ligne qui semblait poser problème était la ligne 55 de ce fichier :

$r = '/(\A|[\s]+|>)('.preg_quote($matches[1],'/').')([\s]+|[<]|\Z)/ms';

Commençant par le début de cette ligne et cherchant la signification du "\A", voilà ce que je trouve dans le manuel PCRE :

\b : matches at a word boundary
\B : matches when not at a word boundary
\A : matches at start of subject
\Z : matches at end of
		subject or before newline at end
\z : matches at end of
		subject
\G :  matches at first matching position in subject

"Je n'ai rien à perdre", me dis-je, et je me lance donc dans la folle aventure qui consitait à remplacer le \A par un joyeux \G.

Et là surprise ! La modification apportée semble être le bonne et ça m'a pris même pas 5 minutes, c'est trop fou :note:

LOL LOL LOL