As long a segment A is the source segment associated with the account dimension then I don't see what the issue is? You should be able to use either explict or between maps to achieve what you want
Explicit mappings would work but you would end up with one per source account in segment A. So 401 to 499 would each need a mapping.
Between wouldn't work because your target account is changing depending on the source account.
What you want is ACCOUNTX (the target account in TDATASEG) to be equal to ACCOUNT (the source) depending if segment A is in the range 401 to 499 (or 4* as you put it).
The only way I know of would be to script it. I haven't got mappings like that so maybe someone else knows a way...
The solution is pretty straight forward, as you would not be including any multi-dimensional maps where the value of segement A was in either of the ranges 301-399 and 401-409 you could just put 2 wildcard maps (Like) to catch all segment A values starting with a 3 or a 4 and map them to the source e.g.
Source Value = 3* , Target Value = *
Source Value = 4* , Target Value = *
Problem with this is (I think) that the Source value is being imported as a multidimension record. So the target value would not just be the same as the source value. It would be just the first chart segment from the source value.
If your source value segments are sparated by an _ character you can use <1> in the source value of your LIKE mapping with * as the target. This will work as long as you map all the other combinations in the other 4 mapping types for the Account dimension. If not you are going to have to use some form of mapping scripting either SQL or Jython