anchor.diff:                 (let* ((rest-exp (subseq regex-string index))
                         (paren-exp (get-first-paren rest-exp))
                         (ret-parse nil))
  -                 (setf ret-parse (deal-with-paren paren-exp))
  -                 (setf (state-out1 (aref trans-table last-end-index))
  -                       (get-ret 'begin ret-parse))
  +                 (setf ret-parse
  +                       (deal-with-paren paren-exp last-end-index))
                    (set-begin-end-f (get-ret 'begin ret-parse)
                                     (get-ret 'end   ret-parse))
                    (incf index (1- (get-ret 'len ret-parse)))))
  
positive.code:         (setf end-index   (get-ret 'end   ret-parse))
          (list begin-index end-index (+ 2 len))))))
  
  (defun make-union (union-string)
    "MAKE-UNION
     make union states.
     RETURN:(lst begin-index end-index length+2)"
    (let* ((begin-index (add-state nil '∈))
           (end-index   (add-state nil '∈))
           (len         (string-length union-string))
           (split-cons (split-union union-string))
  
negative.code:     (if (is-union paren-regex)
        ; union paren
        (if (not (union-ugly-p paren-regex))
          (let ((ret-parse (make-union paren-regex last-end-index)))
            (setf begin-index (get-ret 'begin ret-parse))
            (setf end-index   (get-ret 'end   ret-parse))
            (list begin-index end-index (+ 2 len)))
  