Por que o RegExp.test () não é consistente?

Eu não entendo porque o javascriptRegExp.test() método não retorna o mesmo resultado toda vez que eu o chamo.

Dadas as seguintes variáveis ​​javascript

var opener = '<span[^>]*>';
var regexo = new RegExp('^'+opener+'$', "g");

Eu faço o seguinte:

alert(regexo.test('<span class="outer">')); // true
alert(regexo.test('<span class="inner">')); // false
alert(regexo.test('<span class="inner">')); // true

Eu testei no Firefox 24.0 e IE8 com o mesmo resultado estranho.

Por que o resultadotrue, false, true&nbsp;ao invés detrue, true, true ?