I am exploring capturing groups in Regex and I am getting confused about lack of documentation on it. For ex, can anyone tell me difference between two regex:
/(?:madhur)?/
and
/(madhur)?/
As per me, ? in second suggests matching madhur zero or once in the string.
How is the first different from second ?
The first one won’t store the capturing group, e.g.
$1will be empty. The?:prefix makes it a non capturing group. This is usually done for better performance and un-cluttering of back references.In the second example, the characters in the capturing group will be stored in the backreference
$1.Further Reading.