Ciao, ho provato a controllare il tuo programma e non c'erano errori di sintassi. Poi ho provato ha dichiarare il tipo string tramite la TYPE e in questo modo il programma funziona senza errori.
Program problema_forum;
type stringa = string;
var p:^stringa;
w:stringa;
begin
w:='Ciao!';
p:=nil;
new(p);
p:= @w;
writeln(p^);
dispose(p);
readln;
end.