Per il Galateo dell'uso del forum, credo che un messaggio di esortazione alla risposta dopo una ventina di minuti dalla richiesta di aiuto sia eccessivo e irritante, dato che chi risponde al forum lo fa se ha la risposta pronta e se ne ha voglia, ammesso che ne abbia addirittura la possibilità.
Quando si risponde ad un messaggio, viene inviata una mail di notifica...dopodichè, si possono inserire anche 20000 "please" che l'effetto ottenuto è sicuramente nullo, anzi contrario a quello che si desidera.
A parte questo, non ho analizzato tutto il codice che hai postato, ma mi sembra che l'errore sia ben evidente.
Quando usi la funzione Pos, puoi specificare anche da quale posizione iniziare a ricercare la sottostringa o il carattere interessato.
Nel tuo caso, siccome devi ricercare un delimitatore e tutti i successivi, ad ogni uso della funzione Pos devi memorizzarti il valore restituito da specificare come punto di partenza per la chiamata successiva alla medesima funzione, altrimenti la ricerca parte sempre dall'inizio.
L'errore è comunque facilmente individuabile eseguendo il programma passo passo e ponendo un breakpoint (punto di arresto) sulla prima esecuzione in cui appare la chiamata alla funzione Pos: il valore di posizione che passi come parametro Index dalla seconda chiamata alla funzione Pos in poi è sempre uguale.