Usually when you create a group, a backreference is also created. For example, if you had the regex
(this|that), and it matched, then the backreference would contain "this" or "that", whichever.
The ?: makes the grouping work the same, but tells the regex engine not to create a backreference. See
here for more info.
So if you had
(this|that)_([0-9]+), the first backreference would contain either "this" or "that", the second would be a number. The expression
(?:this|that)_([0-9]+) would only contain one backreference, and that would be the number.