anchor.diff:          (t (ppcre:split (format nil "(?~a)~a" ,,g!m ,(car ,g!a)) ,',g!s)))))
   
   (defun xxx (s c n)
  +  (declare (ignore c n))
     (case (read-char s)
       (#\m (mat (segment-reader s (read-char s) 1) (mods s)))
       (#\d (div (segment-reader s (read-char s) 1) (mods s))) ; divide for split
  
positive.code:     (t (error "Unknown #~~ mode character"))))
  (set-dispatch-macro-character #\# #\~ 'xxx)
  
  (lol:defmacro! ifmatch ((test o!s) conseq &optional altern)
    (let* ((dollars (remove-duplicates (remove-if-not #'lol:dollar-symbol-p (lol:flatten conseq))))
           (top (or (car (sort (mapcar #'lol:dollar-symbol-p dollars) #'>)) 0)))
  
negative.code: (defmacro match (stg &body clauses)
    `(cond
       ,@(loop for (regex . conseq) in clauses
               collect (if (eq regex t)
                         `(t ,@conseq)
                         `((whenmatch (,regex ,stg) ,@conseq))))))
  
  #|
  ;; BUG !!??  ;;;;;;;;;
  ;error: Invalid index 2 for (SIMPLE-VECTOR 2) ...
  (pre:match "2012-11-04" 
    (#~m§(\d{4})-.+-(..)§ (format nil "~a/~a" $3 $1)))
  
  ;"2012-11-04"  
  ;#("2012" "04")
  (#~m§(\d{4})-.+-(..)§  "2012-11-04")
  
  ;"04/2012"
  (pre:whenmatch (#~m§(\d{4})-.+-(..)§  "2012-11-04") (format nil "~a/~a" $2 $1))
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  |#
  
  
  