У меня есть два разных формата строк логов, вы можете протестировать их на этом сайте
Мне нужно сохранить необязательный клиентский раздел в строке ниже, если он присутствует, он завершается, иначе он игнорируется
\[(?<date>[^\]]*)\] \[(?<level>[^\]]*)\] \[(?<pid-tid>[^\]]*)\] (\[(?<client>[^\]]*)\]) (?<message>[^\]]*)
Линии журнала — без клиента
[Пн, 18 января, 21:55:58.239970 2016] [proxy_http:error] [pid 2769:tid 140041068427008] AH01114: HTTP: не удалось установить соединение с серверной частью: xx.xxx.xx.xx
Линии журнала — с клиентом
[Пн, 18 января, 21:55:58.239970 2016] [proxy_http:ошибка] [pid 2769:tid 140041068427008] [клиент xx.xxx.x.xx:10723] AH01114: HTTP: не удалось установить соединение с серверной частью: xx.xxx. хх.хх
Я пробовал как (.*?clientsection) -> 0 или более совпадений
\[(?<date>[^\]]*)\] \[(?<level>[^\]]*)\] \[(?<pid-tid>[^\]]*)\] (.*?(\[(?<client>[^\]]*)\])) (?<message>[^\]]*)
Но это не работает