Yes, that works but those commands create chains, not matchers.
A matcher is loaded through dynamic libraries. There should exist (normally in Linux) a lib folder with the iptables libraries for matchers, which I don’t find on any ‘lib’ folder.
btw, I have a typo on the command, TCP/UDP should be lowercase: iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
but doesn’t work anyway.