This is matching your "1234" against the word
rule since you said it could be alpha or numeric. The word
rules keeps capturing the terms including "1234" and so the error is that the number
rule is never hit.
If you're rule for word
is closer to python's definition of an identifier (can't start with a digit), this will fix your parser:
from pyparsing import Word, OneOrMore, alphas, alphanums, nums
number=Word(nums)
word=OneOrMore(Word(initChars=alphas, bodyChars=alphanums))
greeting = word+(number)
tests = "Hello3 World 1234"
print tests, "->", greeting.parseString(tests)