diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index 976ab8de021e49bd8ca72b8b1bde96e18af29b23..79c72c571312ee054352f39c8d2c860962fa4aa0 100644
--- a/libwccl/parser/grammar.g
+++ b/libwccl/parser/grammar.g
@@ -2122,7 +2122,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