дело не в regex, а в том что themes после
| regexp — это extracted field, а не настоящий label Loki. Variable query вообще не гоняет log pipeline, она смотрит только на индексированные labels, поэтому там всегда пусто.
Просто циферку на дашборд — забудь про переменную, возьми Stat panel с instant-запросом
last_over_time({...} | regexp ... | unwrap themes [$__range])
, сработает штатно.
А если правда нужна переменная $themes — themes придётся выносить в реальный label на этапе сборки (stage.labels в Alloy/Promtail). Но label с постоянно меняющимся числом убьёт cardinality — для такого счётчика честнее отдельная метрика в Prometheus.