PHP 7.3 has a new REGEX library called PCRE2. This library is more strict in patterns to match against for what was otherwise somewhat lenient.
Because of PHP 7.3's PCRE2 library, all CubeCart installations prior to CC626 running under PHP 7.3+ will need to implement the code changes found in the Github issue #2308. There are two links to code changes for a total of four files edited.
It's not a case of your coupon codes being bad. It is the case that the preg_replace() command is faulting from using the current pattern under PHP 7.3 to check for valid coupon codes.
(This also applies if you are using CubeCart's new Custom Order ID feature.)