primo problema ....
codice:
testo = testo.replace(/<pre>([^\2]+)(<\/pre>)/, function(pre, contenuto){
return "<pre>" + contenuto.replace(/<br\s*\/>/g, "\n") + "</pre>";
});
secondo problema ... più complicato.
Innanzitutto non è vero che non puoi posizionare il cursore, ma devi prevenire eventi dell'editor ed implementarne di tuoi, non così semplice a livello medio/base di JS, però va capito se gli "a capo" sono ancora nell'area oppure no (quello che vedi non è detto sia quello che c'è)
per capire questo punto ...
codice:
testo.replace(/<textarea>([^\2]+)(<\/textarea>)/, function(textarea, contenuto){
alert(contenuto.replace(/\r\n|\n|\r/g, "\n"));
});
se contenuto mostra "a capo" nell'alert significa che sono ancora li e si può procedere come nel primo caso, altrimenti devi modificare il parser di TinyMCE
P.S. la variabile testo è il contenuto dell'area