diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index 5ccfb115e7c2ea19b8c87b2b36bf4f73ce2f7840..94ccdacff412da93b04f41600e90b43e0f3efbbf 100644
--- a/libwccl/parser/grammar.g
+++ b/libwccl/parser/grammar.g
@@ -2149,7 +2149,7 @@ match_fit
 	)
 	( // if there's an arrow after the match, we have a submatch reference
 		ARROW i: UNSIGNED_INT { ret.reset(new Submatch(ret, token_ref_to_int(i))); }
-	)?
+	)*
 ;
 
 match_var_val