runtime(vim): Update base-syntax, improve variable matching

- Match variables after operators, including line continuations.
- Match option variables without leading whitespace.
- Explicitly match expression subscripts.
- Match Vim9 variables in LHS of assignments and method calls.
- Match option variables (&option) with a dedicated syntax group like
  environment variables.
- Match list literals, fixes: #5830
- Match :{un}lockvar arguments.
- Match registers and environment variables in :let unpack lists.
- Match lambda expressions
- Match Vim9 scope blocks
- Match variables in :for subject
- Highlight user variables with Normal
- Improve this/super keyword matching, fixes: #15970

closes: #16476

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/syntax/testdir/input/vim9_block.vim b/runtime/syntax/testdir/input/vim9_block.vim
new file mode 100644
index 0000000..3880f97
--- /dev/null
+++ b/runtime/syntax/testdir/input/vim9_block.vim
@@ -0,0 +1,33 @@
+vim9script
+
+# Vim9 blocks
+
+
+{
+  var foo = 42
+}
+
+{
+  {
+    {
+      {
+	var foo = 42
+      }
+      var foo = 42
+    }
+    var foo = 42
+  }
+  var foo = 42
+}
+
+def Foo()
+  {
+    var foo = 42
+    echo foo
+  }
+enddef
+
+echo "foo" | {
+  var foo = 42
+}
+