I am using Pro 3.0 and am using unclassed colors symbology. When setting a very simple custom expression, I am finding that it doesn't actually save the expression when I click OK. Thankfully, I was just testing a portion of a longer expression and had my string saved outside of Pro, but I found over and over again that it just wasn't saving despite getting 'Expression is valid.' Instead, it was selecting the first field listed in my expression - 'X16_LANGUAGE_SPOKEN_AT_HOME.B16004e6' - and symbolizing based on that. I encased the entire expression in parenthesis and was successful, but it's not clear whatsoever that you're supposed to do this, especially given the 'Expression is valid' notice.
To me, it seems this is a bug, but if not, it would be very nice if the software read the whole, validated expression rather than choosing one field.


Here is the (working) expression:
($feature['X16_LANGUAGE_SPOKEN_AT_HOME.B16004e6']+$feature['X16_LANGUAGE_SPOKEN_AT_HOME.B16004e7']+$feature['X16_LANGUAGE_SPOKEN_AT_HOME.B16004e8']+$feature['X16_LANGUAGE_SPOKEN_AT_HOME.B16004e11']+$feature['X16_LANGUAGE_SPOKEN_AT_HOME.B16004e12']+$feature['X16_LANGUAGE_SPOKEN_AT_HOME.B16004e13']+$feature['X16_LANGUAGE_SPOKEN_AT_HOME.B16004e16']+$feature['X16_LANGUAGE_SPOKEN_AT_HOME.B16004e17']+$feature['X16_LANGUAGE_SPOKEN_AT_HOME.B16004e18']+$feature['X16_LANGUAGE_SPOKEN_AT_HOME.B16004e21']+$feature['X16_LANGUAGE_SPOKEN_AT_HOME.B16004e22']+$feature['X16_LANGUAGE_SPOKEN_AT_HOME.B16004e23'])