If you just want to change the roman numerals with GREP, do this:
It just find The roman numerals, take care about some words that contain these words.
You can do this one:
(\b[IVX]+\b)[.]~> change to $1.~>
I just changed your original code to use the period and en-space as a positive lookahead -- it'll only find characters at the beginning of the line if they're followed by a period and an en-space, but will not include them as part of the found text.
If these items all have the same paragraph style applied to them and that style isn't used anywhere that you wouldn't want the formatting, I'd also consider setting this up as a GREP style. You could also do it as a nested style applying your character style up to (.~>). (Don't include the parantheses - I was just trying to make it clear what the expression to use is.)
Hope that helps.
Hmm . . . trying to change 1st, 2nd 3rd etc. so that the contractions are super script by finding (\d)(st|nd|rd|th). But so that the Character Style is not applied to the numerals.
I get it, I get it!