In der Library ist aber doch ein Loop drinnen, der Inkey immer wieder aufruft.
SerialCharMatch funktioniert so, dass zu dem Label gesprungen wird, wenn das Zeichen empfangen wurde, welches du vorgegeben hast.
Dort fragst du mit Inkey das erste Zeichen des Puffers ab. Danach geht das Programm wieder zurück zu dem befehl, wo es unterbrochen wurde.
Dies ist bei dir die Do..Loop mit dem Print alle 500ms. D.h. du kannst so nur ein Zeichen einlesen. Überleg es dir noch einmal.
Du könntest es auch so machen:

Code:
Serial0charmatch:
   While IsCharWaiting() = 1
        Text = Text + Inkey()
   Wend
Return