Index: trunk/matching.lisp
===================================================================
--- trunk/matching.lisp	(revision trunk,25)
+++ trunk/matching.lisp	(revision trunk,30)
@@ -235,30 +235,34 @@
      (destructuring-bind (head . tail) rule
        (if (symbolp head)
-	   (symcase head
-	     (^ (destructuring-bind (regex) tail
-		  `(if-matches-regex ,input ,regex (,next ,match)
-		    ,then ,else)))
-	     (/ `(if-matches-choice ,input ,tail (,next ,match) ,then ,else))
-	     ({} (destructuring-bind (mincount maxcount subrule) tail
-		   `(if-matches-count ,input ,mincount ,maxcount ,subrule
-		     (,next ,match) ,then ,else)))
-	     (* (destructuring-bind (sub) tail
-		  `(if-matches-count ,input 0 nil ,sub (,next ,match)
-		    ,then ,else)))
-	     (? (destructuring-bind (sub) tail
-		  `(if-matches-count ,input 0 1 ,sub (,next ,match)
-		    ,then ,else)))
-	     (+ (destructuring-bind (sub) tail
-		  `(if-matches-count ,input 1 nil ,sub (,next ,match)
-		    ,then ,else)))
-	     (& (destructuring-bind (sub) tail
-		  `(if-matches-required ,input ,sub (,next ,match)
-		    ,then ,else)))
-	     (! (destructuring-bind (sub) tail
-		  `(if-matches-forbidden ,input ,sub (,next ,match)
-		    ,then ,else)))
-	     (= (destructuring-bind (sub) tail
-		  `(if-matches-only ,input ,sub (,next ,match) ,then ,else)))
-	     (t `(if-matches-sequence ,input ,rule (,next ,match)
-		  ,then ,else)))
-	   `(if-matches-sequence ,input ,rule (,next ,match) ,then ,else))))))
+           (symcase head
+                    (^ (destructuring-bind (regex) tail
+                         `(if-matches-regex ,input ,regex (,next ,match)
+                                            ,then ,else)))
+                    (/ `(if-matches-choice ,input ,tail (,next ,match)
+                                           ,then
+                                           ,else))
+                    ({} (destructuring-bind (mincount maxcount subrule) tail
+                          `(if-matches-count ,input ,mincount ,maxcount ,subrule
+                                             (,next ,match) ,then ,else)))
+                    (* (destructuring-bind (sub) tail
+                         `(if-matches-count ,input 0 nil ,sub (,next ,match)
+                                            ,then ,else)))
+                    (? (destructuring-bind (sub) tail
+                         `(if-matches-count ,input 0 1 ,sub (,next ,match)
+                                            ,then ,else)))
+                    (+ (destructuring-bind (sub) tail
+                         `(if-matches-count ,input 1 nil ,sub (,next ,match)
+                                            ,then ,else)))
+                    (& (destructuring-bind (sub) tail
+                         `(if-matches-required ,input ,sub (,next ,match)
+                                               ,then ,else)))
+                    (! (destructuring-bind (sub) tail
+                         `(if-matches-forbidden ,input ,sub (,next ,match)
+                                                ,then ,else)))
+                    (= (destructuring-bind (sub) tail
+                         `(if-matches-only ,input ,sub (,next ,match)
+                                           ,then
+                                           ,else)))
+                    (t `(if-matches-sequence ,input ,rule (,next ,match)
+                                             ,then ,else)))
+           `(if-matches-sequence ,input ,rule (,next ,match) ,then ,else))))))
