Regex: как выбрать real path из строки?

Не могу победить до конца регулярку. Нужно из строки выбрать группы: datetime, текст внутри квадратных скобок и путь (исключить имя файла) из подстроки.

Пример строки:

2023-10-26 03:06:55,136 WARN  [TSSS_NSSS-SIB] done ip 10.33.22.22 f '/mnt/data/DD/DD/A/sds/tdf/DDdf-fdfd-dfdf_dfdf_3433343.txt' t '/DDdf-fdfd-dfdf_dfdf_3433343.txt' sz 3507

Вот регулярка: (.*)(\sWARN\s{2}\[)(.*)(\]\s)(done[^\']+\')

Не получается сказать, что нужно дальше выбрать все от первого вхождения "/" до последнего вхождения "/" в подстроке с путем. В итоге из этой строки нужно выбрать группами:

2023-10-26 03:06:55
TSSS_NSSS-SIB
/mnt/data/DD/DD/A/sds/tdf/

Ответы (2 шт):

Автор решения: Швеев Алексей

Исходя из задачи убрал кучу лишних групп и не только. Вот:

UPDATED: Обновил для Rust

([^,]*)[^\[]*\[(.*)\][^']+'([^']*)'

https://regex101.com/r/57lg9l/2

UPDATED2: Если надо только если WARN и done:

([^,]*),\d*\sWARN\s*[^\[]*\[(.*)\]\sdone\s[^']+'([^']*)'

UPDATED3: Не цепляя имя файла:

([^,]*)[^\[]*\[(.*)\][^']+'([^']*)/.*\..*'

https://regex101.com/r/57lg9l/3

→ Ссылка
Автор решения: Алексей Р
(^.+?),.+?\[(.+?)].+?'(\/(?:[^']+?\/)+)
→ Ссылка