А как понять, что это перечисление ников, а не обычное сообщение?
Не уверен, что с помощью RegExMatch можно получить именно то, что вы хотите. Так можно получить массив ников:
NickList = [05:21:33] [Client thread/INFO]: [CHAT] __Name__, Name2, RandomNike
if (RegExMatch(NickList, "O)\[\d{2}:\d{2}:\d{2}\]\s+\[Client thread\/INFO\]:\s+\[CHAT\]\s+(?<message>.*)", match))
{
nickListArr := strSplit(match.message, ", ")
; Первые три ника
msgbox, % nickListArr[1] " " nickListArr[2] " " nickListArr[3]
; Выводим по одному нику
for index, nick in nickListArr
{
msgbox, % nick
}
}
Либо же получить тот результат, которвый вы хотите, но с такими данными же не удобно работать, зачем?
NickList = [05:21:33] [Client thread/INFO]: [CHAT] __Name__, Name2, RandomNike
if (RegExMatch(NickList, "O)\[\d{2}:\d{2}:\d{2}\]\s+\[Client thread\/INFO\]:\s+\[CHAT\]\s+(?<message>.*)", match))
{
for index, nick in strSplit(match.message, ", ")
{
match%index% := nick
}
; Первые три ника
msgbox, % match1 " " match2 " " match3
}
Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)