Parse 'can't be regenerated'
Parse 'can block only'
Parse 'doesn't untap' and generalize 'as long as' to make 'for' optional
Make steps potentially plural
Allow optional duration for 'doesn't untap' like Shipbreaker Kraken
Parse 'must be blocked'
Implement '[<player>] choose <target> [from <zone>]'
Allow 'in <zone>' in CardMatch
Make 'it' a possible zone; fix cardMatch
Parse optional 'of ' between countRange and targetMatch in targets