Good catch.  These will all make wonderful tests.
-        expand_string_message =
-          string_sprintf("Cannot use '%c' as a separator",
-                         sub_arg[0][1]);
+        expand_string_message = sub_arg[0][1] ?
+          string_sprintf("Cannot use '%c' as a separator", sub_arg[0][1]) :
+          US"No separator specified";

It's really only a single case that it will ever fire, but it catches that one case where the string gets truncated.