credo che questo sia un bug delle regular expression (la stessa cosa succede anche in vbscript)
in questo caso la ā viene vista come fineparola (\b)
infatti se provi a fare cosė
codice:
var re = /\b(universit)\b/
var str = "bar dell'universitā di ingegneria";
document.write(str+'
'+re.source+'
');
if(re.test(str)) {
var ris=str.match(re)
for(var i=0;i<ris.length;i++)
document.write('>'+ris[i]+'<
');
}
ti tira fuori "universit"
quindi bisogna usare qualcosa di diverso dal \b
si potrebbe fare cosė
codice:
var re = /(^|\s|')(universitā)(\s|$|')/
var str = "bar dell'universitā di ingegneria";
document.write(str+'
'+re.source+'
');
if(re.test(str)) {
var ris=str.match(re)
for(var i=0;i<ris.length;i++)
document.write('>'+ris[i]+'<
');
}