anchor.diff:          (setf end-index   (get-ret 'end   ret-parse))
           (list begin-index end-index (+ 2 len))))))
   
  -(defun make-union (union-string)
  +(defun make-union (union-string last-end-index)
     "MAKE-UNION
      make union states.
      RETURN:(lst begin-index end-index length+2)"
  -  (let* ((begin-index (add-state nil '∈))
  +  (let* ((begin-index last-end-index)
            (end-index   (add-state nil '∈))
            (len         (string-length union-string))
            (split-cons (split-union union-string))
  
positive.code:         ((eq 'end   key) (nth 1 parse-ret))
          ((eq 'len key) (nth 2 parse-ret))))
  
  (defun deal-with-paren (paren-regex)
    "DEAL-WITH-PAREN
     RETURN:(lst begin-index end-index length+2)"
    (let ((begin-index nil)
  
negative.code:                (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 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)))))
  