Non puoi confrontare un oggetto RegExp con una stringa. Alla Regexp puoi applicare il metodo test, per verificare che uan stringa segua la regexp:

var i=new RegExp("([a-zA-Z\ ]{2,})");
if(i.test(testo.value)) { alert("Il campo testo link non è valido."); return false}

o forse vuoi fare il contrario:
var i=new RegExp("([a-zA-Z\ ]{2,})");
if(!i.test(testo.value)) { alert("Il campo testo link non è valido."); return false}


Inoltre ci sono errori nelle prime RegExp (mancano delle backslash):
codice:
var maschera = document.mylink.maschera.value.replace(/\'/g,"\'");
var maschera = document.mylink.maschera.value.replace(/\"/g,"\\\"");
Ho notato che il form si mangia qualcosa: ripeto cosa c'e` dentro le tonde:
slash backslash apice slash g virgola virgolette backslash apice virgolette

slash backslash virgolette slash g virgola virgolette backslash backslash backslash virgolette virgolette

Quest'ultimo si puo` anche scrivere:
slash backslash virgolette slash g virgola apice backslash virgolette apice


Ciao
Michele