Thanks to u/oantolin work my completion inside emacs has come to another level of comfort.
I've been using orderless with some custom dispatchers for a while now, but I've always felt like something was wrong or too complex when using the OR operator (regex: `\(pattern1\|pattern2\)`).
So today I invested half a hour into learn basics of Elisp string operations and have created my own dispatcher for that.
(defun or-regexp (pattern index _total)
(cond
((string-suffix-p "|" pattern)
`(orderless-regexp . ,(concat "\\(" (concat (s-replace "|" "\\|" (substring pattern 0 -1)) "\\)"))))
((string-match-p "|" pattern)
`(orderless-regexp . ,(concat "\\(" (concat (s-replace "|" "\\|" pattern) "\\)"))))))
I assume it's not the prettiest code, but it's enough for me