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) ----------------------------------------------------------
|
|---|