Re: alternation option end of string

Eric Cook <[email protected]> Fri, 1 May 2026 20:44:35 -0400
Newsgroups gmane.comp.shells.zsh.user
Message-ID <[email protected]>
On 5/1/26 8:36 PM, Ray Andrews wrote:
> 
> 
> On 2026-05-01 16:56, Ray Andrews wrote:
>>
>>
>> On 2026-05-01 15:39, Mark J. Reed wrote:
>>> $
>>>
>>> e.g. 'a(b|$)' will match an a that is either followed by a b or at the end of the strings
>>>
>>>
> I must be doing something wrong:
> 
> % string='cats'
> 
> % out="${(M)string##cat(s|$)}"; echo $out
> cats
> 
> % string='cat'
> 
> % out=${(M)string##cat(s|$)}; echo $out
> 
> [nothing]
> 
> 
> 

So, bart guessed correct, you are using pattern matching.
string=cats; print -- ${(M)string##cat(s|)}

tho, in this particular case, you could just do:  ${(M)string##cats#}