@caramen
Now you can experiment whatever you want
#include <Array.au3>
#include <StringConstants.au3>
Global $strString = "[XXXXX][Autre][60][Demandeur][4567_987654]SomeText" & @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 $strPattern = "(?is)" & _
"\[([a-z]{5})\]" & _ ; Five Letters
"\[(PO|Autre|[^]]+)\]" & _ ; PO or Autre or whatever you want
"\[(\d{1,3})\]" & _ ; Three Digits
"\[(Demandeur|Opérateur|Prise|Instructeur)\]" & _ ; One of five Strings
"(?:\[(\w+)\])?" & _ ; Folder Number, which is OPTIONAL
".*?" & _
"Bonjour,\s" & _
"(.*?)vous.*?" & _ ; Name and Surname
"\-\semail\s:\s([^\n]+)\s" & _ ; Email
"\-\stél\.\s:\s([-\d]+)?" ; Telephone number, which is OPTIONAL
Global $arrResult
$arrResult = StringRegExp($strString, $strPattern, $STR_REGEXPARRAYGLOBALMATCH)
If IsArray($arrResult) Then _ArrayDisplay($arrResult)