in reply to Regex: succeeds, but parens don't collect...

Mu conclusion is that 'optional' success ('?'="zero or one") is not a 'match' as far as '(...)' collection is concerned

The problem is that it _is_ a match -- your regex will match nothing, so it's always going to succeed, therefore, the test will always be true for any string.

Can I force a match to happen here 1 time (while keeping it optional)?

I'm not sure exactly what you're trying to do -- if you remove the trailing question mark, when the URL=... isn't there, it'll go to the 'else' block, and you can handle whatever you need to for the fact that it didn't match.

...

although, I will admit that I'm surprised it didn't capture the text -- I had assumed ? was greedy, as with + or * ... maybe someone else knows why this isn't the case here.

update: and the answer to my question was hidden in anonymous monk's response:

)? end of \1 (NOTE: because you're using a quantifier on this capture, only the LAST repetition of the captured pattern will be stored in \1) ----------------------------------------------------------