runtime(sh): set b:match_skip to ignore matches for matchit

related: #16801
closes: chrisbra/matchit#50
closes: #16834

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/ftplugin/sh.vim b/runtime/ftplugin/sh.vim
index 54ae73b..0038ee7 100644
--- a/runtime/ftplugin/sh.vim
+++ b/runtime/ftplugin/sh.vim
@@ -6,6 +6,7 @@
 "			Eisuke Kawashima
 " Last Change:		2024 Sep 19 by Vim Project (compiler shellcheck)
 "			2024 Dec 29 by Vim Project (improve setting shellcheck compiler)
+"			2025 Mar 09 by Vim Project (set b:match_skip)
 
 if exists("b:did_ftplugin")
   finish
@@ -30,7 +31,8 @@
 	\  s:sol .. '\%(for\|while\)\>:' .. s:sol .. 'done\>,' ..
 	\  s:sol .. 'case\>:' .. s:sol .. 'esac\>'
   unlet s:sol
-  let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words"
+  let b:match_skip = "synIDattr(synID(line('.'),col('.'),0),'name') =~ 'shSnglCase'" 
+  let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words b:match_skip"
 endif
 
 if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")