En las expresiones regulares cuando pones algo entre parentesis quiere decir que queres capturar lo que matchea con esa seccion en un grupo.
Por ejemplo (\w+) esto va a matchear todo lo que sea letras mas de una vez y lo va a guardar en un grupo.
El operador ?: sirve para indicar que no queres guardar ese grupo.
Por ejemplo (?:\w+) va a matchear lo mismo que el ejemplo anterior pero no va a guardar el grupo. En este ejemplo no tiene mucho sentido usarlo asi, si no queres guardar el grupo no pones los parentesis y listo, pero lo de armar grupos y no guardarlos sirve para cuando queres usar un OR o poner que algo es opcional.
Por ejemplo (?:div|span) eso va a matchear contra div o contra span y no va a guardar el grupo.
Tambien puede ser para indicar que algo puede estar o no de esta forma (?:div)? ahi estas indicando que toda la palabra div puede estar o no y no guardas el grupo.
En las expresiones regulares cuando pones algo entre parentesis quiere decir que queres capturar lo que matchea con esa seccion en un grupo.
Por ejemplo (\w+) esto va a matchear todo lo que sea letras mas de una vez y lo va a guardar en un grupo.
El operador ?: sirve para indicar que no queres guardar ese grupo.
Por ejemplo (?:\w+) va a matchear lo mismo que el ejemplo anterior pero no va a guardar el grupo. En este ejemplo no tiene mucho sentido usarlo asi, si no queres guardar el grupo no pones los parentesis y listo, pero lo de armar grupos y no guardarlos sirve para cuando queres usar un OR o poner que algo es opcional.
Por ejemplo (?:div|span) eso va a matchear contra div o contra span y no va a guardar el grupo.
Tambien puede ser para indicar que algo puede estar o no de esta forma (?:div)? ahi estas indicando que toda la palabra div puede estar o no y no guardas el grupo.