since this is a runtime operation, should we cache the regexp?