I am not attempting to question the efficacy of your chosen path, nor generate a solution. Just trying to show you how to make things optional inline, which is easier to highlight in this fashion. Is this closer to feasible for an example?
#include<array.au3>
Global $strString2 = "[BLABLA][Autre][60][Demandeur][4567_987654]" & @CRLF & @CRLF & _
"Bonjour," & @CRLF & _
"Charles HENRY vous envoie un message." & @CRLF & _
"J'ai un problème de toilette" & @CRLF & _
"Merci de m'aider" & @CRLF & _
"- email : Jordane.AutoIT@AutoITForum.com" & @CRLF & _
"- tél. : 0607080909"
Global $strString3 = "[BLABLA][Autre][60][Demandeur]autere" & @CRLF & @CRLF & _
"Bonjour," & @CRLF & _
"Charles HENRY vous envoie un message." & @CRLF & _
"J'ai un problème de toilette" & @CRLF & _
"Merci de m'aider" & @CRLF & _
"- email : Jordane.AutoIT@AutoITForum.com" & @CRLF & _
"- tél. :"
Global $strString4 = "[BLABLA][Autre][60][Demandeur]" & @CRLF & @CRLF & _
"Bonjour," & @CRLF & _
"Charles HENRY vous envoie un message." & @CRLF & _
"J'ai un problème de toilette" & @CRLF & _
"Merci de m'aider" & @CRLF & _
"- email : Jordane.AutoIT@AutoITForum.com" & @CRLF & _
"- tél. : "
$aMatch = stringregexp(StringStripWS($strString2 , 8) , "\[.*?\]\[.*?\]\[(.*?)\]\[(.*?)\]\[*(.*?)\]*?Bonjour,([A-Z].+?)([A-Z].+?)vous.*?email:(.*?)-tél.:(.*?)\z",3)
_ArrayDisplay($aMatch)