You can build queries by constructing the URL that you can't build by using the Data Access Form.
But even with constructing the URL, there are only two ways to get the data for more than one platform_code, and you identified them:
1) Make a separate "=" query for each platform_code that you want.
2) Use one "=~" (regular expession) query to get all of the data for all of the platform_codes at once.
There are no alternatives.
Yes, the regular expression version takes longer to process. That's because, in most cases, ERDDAP often must filter all of the data in the dataset in order to find the matching data. That extra power (of the regular expression) comes at a cost.
We could change the query language and make exceptions to the current rules, but I think that would be a bad idea because:
1) It adds complexity to the handling of queries.
2) Where do you stop making exceptions?
3) This exception breaks the DAP 2.0 query system which ERDDAP is following. (That's the main reason.)
I know that isn't what you want to hear. I'm sorry.
The good news is: you have 2 ways to get what you want.