@Dirk – just tested your idea with unicode ranges in InDesign CS5.5. And it worked very well:
1. GREP-Style for styling the English range (and something more, some punctuation etc.pp.):
Used character style colored in red:
"Latin"
[\x{0020}-\x{00FF}]
2. GREP-Style for styling the glyph that comes before that range and the last one in the found range:
Used character style colored in green:
"WhereLatinMeetsSomethingElse"
([\x{0020}-\x{00FF}](?=[^\x{0020}-\x{00FF}]))|([^\x{0020}-\x{00FF}](?=[\x{0020}-\x{00FF}]))
Screenshot of some mixed text with the two GREP Styles at work. Text is formatted with Arial Unicode MS:
Image may be NSFW.
Clik here to view.
Here you can see, that we have some cases where it is unfortunate to use wider spaces before and after:
、 \x{3001}
。 \x{3002}
( \x{FF08}
) \x{FF09}
There may be some more…
Uwe