There is a mid-level way to "fix" this under zsh, as it supports nesting parameter expressions¹. You can, for example, use ${#${#}} to disambiguate ${##}. It doesn't remedy any of overloading described in the article, but it does at least make it possible to understand the implied meaning(rainbow highlighting for brackets probably helps here too).<p>For the most part I'd prefer the syntax suggested in the posted document, but I'm pointing this out as it can be useful as a way to apply arbitrary zsh flags to simple strings to remove the need for external tools like sed(fex, ${(<i>flags</i>)${:-test}:<i>flags</i>}).<p>Final odd trivia note, you can make the syntax even worse with zsh as # is also an expansion flag when surrounded by braces. ${(#)#:-0x23} is valid -- and woefully unreadable -- syntax to count the length of the "#" string.<p>¹ <a href="https://zsh.sourceforge.io/Doc/Release/Expansion.html#Rules" rel="nofollow noreferrer">https://zsh.sourceforge.io/Doc/Release/Expansion.html#Rules</a>