all legal and illegal strings parse correctly