alpha = { 'a'..'z' | 'A'..'Z' }
digit = { '0'..'9' }
non_digit = { !digit ~ . }
non_alpha = { !alpha ~ . }
all_characters_without_digits = { non_digit+ }
all_characters_without_alpha = { non_alpha+ }
name = {(all_characters_without_digits)+ ~ (alpha)+ ~ (all_characters_without_digits)+}
age = {(all_characters_without_alpha)+ ~ (digit)+ ~ (all_characters_without_alpha)+}
city = {(all_characters_without_digits)+ ~ (alpha)+ ~ .+}
zip = {.+ ~ (digit)+ ~ .+}
person = {name ~ age ~ city ~ zip}