Всё понял, надо так:
CL-USER>
(let ((txt "Тип ошибки:
Пустое обязательное поле - 25"))
(ppcre:register-groups-bind (name (#'parse-integer index))
("^\\s*Тип ошибки:\\s*(.+)\\s*-\\s*(\\d+)$" txt)
(list name index)))
("Пустое обязательное поле " 25)CL-USER>
Только вот нельзя в регэкспе указать чтобы name пустотами не оканчивался?
В принципе можно обойтись этим:
CL-USER>
(let ((txt "Тип ошибки:
Пустое обязательное поле - 25"))
(ppcre:register-groups-bind (name (#'parse-integer index))
("^\\s*Тип ошибки:\\s*(\\S.+\\S)\\s*-\\s*(\\d+)$" txt)
(list name index)))
("Пустое обязательное поле" 25)Ещё с квантификатором "скромности" ("?"):
"^\\s*Тип ошибки:\\s*(.+?)\\s*-\\s*(\\d+)$"
Тоже работает, но вот не пойму в чём суть. "?" вполне может захватить \#\Space.