js 使用正则表达式 提示不是正确的正则表达式

在正则表达式工具中正确替换 但是在js 中提示不是正确的正则表达式在线求大神
var patt1=new RegExp("(?<!\")(学生)(?!\")");
var str = $("body")[0].innerHTML;
var reg = /(?<!\")(学生)(?!\")/;
str =str.replace(reg,"学生");

var reg = /(?<!\")(学生)(?!\")/;

这一句中第一个?是什么意思,我完全没看懂,如果是特殊符号,那么前面小括号应该转义'('如果是以普通符号匹配,则?号转义'\?'