Mark, it's just a parser with a delimiter you're making, right? e.g.
(func 8 '(5 4 3 0 9 8 9 0 5 6 8 )) -> ((5 4 3 0 9) (9 0 5 6))
(defun parselst (item lst / l ll)
(while lst
(cond ((not (eq (car lst) item))
(setq l (cons (car lst) l)))
((setq ll (cons (reverse l) ll)
l nil))
)
(setq lst (cdr lst))
)
(reverse (if l (cons (reverse l) ll) ll))
)