comparse: local-part pasted by andyjpb on Fri Apr 4 19:21:16 2014

(define local-part (sequence                ; word *("." word)
		     word
		     (zero-or-more
		       (sequence
			 (char-seq ".")
			 word))))
-----
#;69> (parse local-part "andyj.pb@ashurst.eu.org")
(())
#<lazy-seq #\a #\n #\d #\y #\j #\. #\p #\b #\@ #\a #\s #\h #\u #\r #\s #\t #\. #\e #\u #\. #\o #\r #\g>
; 2 values

nicer result added by DerGuteMoritz on Fri Apr 4 19:47:20 2014

(define local-part                      ; word *("." word)
  (sequence* ((head (as-string word))
              (tail (zero-or-more
                     (preceded-by (char-seq ".")
                                  (as-string word)))))
    (result (cons head tail))))