anchor.diff:    (assert (char= (char string 0) #\?))
     (mapcar #'parse-parameter
   	  (cl-ppcre:split "&" (subseq string 1))))
  +
  +(defun parse-api-url (request-string)
  +  (multiple-value-bind (scanner vars)
  +	(gen-regexp
  +	 (if (find #\? request-string)
  +	     (subseq request-string 0 (position #\? request-string))
  +	     request-string))
  +    (let ((parameters 
  +	   (when (find #\? request-string)
  +	     (parse-parameters 
  +	      (subseq request-string (position #\? request-string))
  +	      ))))
  +      (values scanner vars parameters))))
   
   (defun gen-regexp (string)
     (let* ((vars nil)
  
positive.code:     (values scanner 
  	    vars)))
  
  (defun parse-api-url (request-string)
    (multiple-value-bind (scanner vars)
  	(gen-regexp
  	 (if (find #\? request-string)
  	     (subseq request-string 0 (position #\? request-string))
  	     request-string))
      (let ((parameters 
  	   (when (find #\? request-string)
  	     (parse-parameters 
  	      (subseq request-string (position #\? request-string))
  	      ))))
        (values scanner vars parameters))))
  
  (defun backend-var (backend)
    (intern (format nil "*BACKEND-URL-~A*" backend) :rest-server))
  
negative.code: 		     (cddr plist))))))
      (do-replace url plist)))
  
  (defmethod print-object ((api-definition api-definition) stream)
    (print-unreadable-object (api-definition stream :type t :identity t)
      (format stream "~A" (name api-definition))))
  
  (defmethod initialize-instance :after ((api-definition api-definition) &rest initargs)
    (declare (ignore initargs))
    (setf (gethash (name api-definition) *apis*) api-definition))
  
  (defun parse-parameter (string)
    (cl-ppcre:register-groups-bind (query-param var)
  