Что делает (?: Делать в регулярном выражении

Я столкнулся с регулярным выражением, которое я неЯ не понимаю, может ли кто-нибудь помочь мне расшифровать это:

^home(?:\/|\/index\.asp)?(?:\?.+)?$

Он используется в сопоставлении URL, а в приведенном выше примере сопоставляются следующие URL:

home
home/
home/?a
home/?a=1
home/index.asp
home/index.asp?a
home/index.asp?a=1

Мне кажется, что вопросительные знаки в скобках(?: дон»ничего не делай. Может ли кто-нибудь просветить меня.

Используемая версия регулярного выражения - это версия Classic ASP, которая запускается на сервере, если это вообще помогает.