Hi Kovid, you are absolutely right:
(?<=M)\*M works.
But, that is not the expression I used
My expression also used a positive lookahead part
(?<=M)\s*(?=M)
which fails when \s* is empty. Further, when succeeding M<space>M text constructs are present after the very first MM construct, they are also not found, because the search is stopped immediately and the attached error message is displayed.
I use a text like: adasMMasd adssdM Masdda M Msad
Although my regex knowledge is limited, I cannot recall that there should be a limitation on the expected behavior when (assumed) greedy search would certainly be able to find the other M's ones.
Is there an explanation you know of?
Addation: I use the lookahead construct specifically in order to not "consume" the found text.