js正则有两个问题跪求高人指点

var evalExpr = /<%=(.+?)%>/g;
var expr = /<%([\s\S]+?)%>/g;

这两个正则里面的括号 .+?我知道是啥意思,放一起就不知道了?
括号我知道是取值 请问这是取一个字符吧?

\s\S 和 . 哪个范围最大?

应该不只是取一个字符吧,+表示一个或多个,?表示匹配零次或一次
组合在一起就是 整个字符序列出现0次或一次
\s是匹配空白字符包括空格、制表符、换页符
\S是匹配非空白字符

.匹配除\n外的任意字符,\s匹配任何空白字符,\S匹配任何非空白字符,.的范围最大,其次是\S,最后是\s。?用于消除贪婪匹配。