肯定先読みと?:
肯定先読み(?=)をなんとなく理解してたが
?:←これがWSHのヘルプに載っており
それ見たら以前より、なんとなく理解できた。
var str = 'Windows95 Windows98 Windows2000 WindowsXP'; alert(str.replace(/Windows(?=95|98|2000)/g, '@')); //@95 @98 @2000 WindowsXP alert(str.replace(/Windows(?:95|98|2000)/g, '@')); //@ @ @ WindowsXP alert(str.replace(/Windows(?!95|98|2000)/g, '@')); //Windows95 Windows98 Windows2000 @XP
つまりこういうことです。
説明はできませんしません。