According to the documentation in rhe regexp manual,
match is supposed to return a list; the first value
is a regex_t describing the whole expression
the subsequent values are regex_t for each subgroup.
Trying this little program,
(setf t1 "abcdefghijklmnop")
(princ (match "abcdef" t1))=20
(princ (regexp:match "ab\\(c\\(def\\)\\)" t1))=20
the second match simply returns one value where if I understood
correctly, it should return three. How do I extract subgroups?