diff --git a/parser.lisp b/parser.lisp
index c863dc6..b9940b0 100644
--- a/parser.lisp
+++ b/parser.lisp
@@ -123,8 +123,9 @@
nil)
(t
(let ((token (parser-match-token pr 0)))
- (incf (the fixnum (parser-match-start pr)))
- token)))))
+ (when token
+ (incf (the fixnum (parser-match-start pr)))
+ token))))))
(defmacro match-sequence (parser &body body)
(let ((pr (gensym "PR-"))