JAVA正则表达式中的小括号是做什么的?解决办法

JAVA正则表达式中的小括号是做什么的?
求教!!
验证Email
wwzwwq@163.sdfsdf.r.sdfsdf.com.cn.fg

"[^@^.]+@[[^@^.]+\\.]+(com|gov|net|com\\.cn|edu\\.cn) "
返回假

"[^@^.]+@[[^@^.]+\\.]+[com|gov|net|com\\.cn|edu\\.cn] "
返回真

那么()跟[]有什么区别

------解决方案--------------------
[ ] 仅仅匹配方括号其中的字符
() 分组,圆括号中的字符视为一个整体。