Hi Brandon,
This problem may no longer be relevant for you, but just in case it is: the issue is that maplex has the option to specify stacking characters, and the space character is a stacking separator by default, so it splits on any space it sees fit.
You could remove the space as a stacking separator and choose an open bracket character for example, with visibility on and split after checked off.
However, this won't help you if you still want it to stack on space characters in other parts of your expression. For that, you can use non-breaking space characters.
You can replace regular spaces in part of your expression with non-breaking space character (U+00A0). For example:
$feature.full_name + " (Z:" + $feature.zone + "\u00A0" + "R:"+ $feature.rank_id +")"
Or if you have regular spaces in your fields and don't want them to stack, you could find and replace them with nbsp in a section:
$feature.full_name+ " " + replace("(Z:" + $feature.zone + " R:"+ $feature.rank_id +")", " ", "\u00A0")
Maplex will not split on these non breaking space characters.
Or as a third option, you can hard code your new line character, and disabling stacking as a fitting strategy
$feature.full_name + TextFormatting.Newline + "(Z:" + $feature.zone + " R:"+ $feature.rank_id +")"
All the examples above are using Arcade, but will work just as well in any other parser. For VBScript make sure you use + vbnewline + instead of TextFormatting.Newline to ensure you have the correct type of line feed character.
Hope that helps!
Ciara