Serial data arrives SLOWLY. You will fine Serial.available() returns 0 for a LONG time, then will return 1. You read the ONE available character, then Serial.available() again returns 0 for a LONG time, until another character arrives. But, you've now exited your while loop, BECAUSE Serial.available returns 0, so newData is again set to false, and pos is again rsset to 0, so you're starting over from scratch each time a character is received.
See the problem? Read, and study, more of the tutorial, to understand how to properly either wait for ALL characters to arrive, or properly handle the characters one at a time, with the unavoidable delays between each character being received.