请教 正则表达式的问题.

请教 正则表达式的问题.

看RUBY 文档中,有段关于正则表达式的例子,但有个地方不明白.希望高手解释.
不明白的一段代码是:
re = /[w|W]indows(?:98|2000) /

正则表达式中,(?:98|2000) 是什么意思呢.
特别是这个?:


#E8.3-3.rb
strdoc=<<DOC_EOF
This is windows2000 or windows98 system.
Windows system is BEST?
Windows2000 running in 12-31-2006,……
DOC_EOF

re = /[w|W]indows(?:98|2000) /
puts re,"\n"
strdoc.gsub!(re, "Windows XP ")
re = /[1-9][0-9]\-[1-9][0-9]\-\d\d\d\d/
time = Time.now.strftime("%m-%d-%Y")
strdoc.gsub!(re, time)
puts strdoc
the ruby way 3.7节有说明
?: 在正则式中是没有匹配结果的.

例:
str = "a123b45c678"
str.sub(/(a\d+)(?:b\d+)(c\d+)/, "1st=\\1, 2nd=\\2, 3rd=\\3")
# "1st=a123, 2nd=c678, 3rd="

如果没有?:你的程序匹配后\\1会是"2000"和"98", 不过你的程序没有这个?:也没问题.