hashcat is smart enough in a subtle way. It will not bother with candidates that are unsuitable for a certain hash type.
It checks this after the rules have been applied.
(stusmall's comment explains the influence of rules better than I could). Hashcat shows these candidates as "Rejected".
The interesting part is that you can't configure the minimum or maximum length anymore[1], the restrictions are hard coded for every hash type. This is because for fast hashes the branch introduced by the check would be slower than just hashing away[2].
[1] It was possible with the old CPU-based hashcat (--pw-min and --pw-max)
[2] https://hashcat.net/forum/thread-3444.html?highlight=branch