Я читаю про ELK, в составе ELK есть модуль Grok он занимается парсингом строк через регулярки.
Пример работы прост:
Для исходной строки:
55.3.244.1 GET /index.html 15824 0.043
Используется следующий шаблон:
%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}
Где в кудрявых скобках "суб-регулярки" которые вставляются в "основную регулярку":
IP (?:%{IPV6}|%{IPV4})
WORD \b\w+\b
URIPATHPARAM %{URIPATH}(?:%{URIPARAM})?
NUMBER (?:%{BASE10NUM})
Я правильно понимаю что "суб-регулярки" просто хранятся в каких-то переменных в коде и при компиляции "основной регулярки" они подставляются в неё и уже скомпилируется регулярка где вместо названий суб-регулярок будут подставлены сами суб-регулярки?