I need to get the index of the last occurrence of a regexp.

In the sentence below, I need to get the index of the last period or exclamation point, but not if it's part of a short abbreviation (space-char-period)

```
Great buy w. all amenities! Use on all cars. come on in 

```

I can get the index of the first occurrence like this

```
t = u"Great buy w. all amenities! Use on all cars. come on in "
p = "(?<! .)([.] |! )"
i = len(re.compile(p).split(t)[0])
print i

```

That's the exclamation point after "amenities". But I need the period after "cars". 

My abbreviation regexp may need some tuning, but the point is that the regexp has a negative look-behind.

I tried using a negative look-ahead but it got complicated and didn't work the way I did it.