Complete SUBST support with :test-not keyword parameter, error checking and tests