Nadya,
I don't think merely changing your index expression will solve your problem. Your REPLACE statement will need to be modified in a similar manner. Even then, I'm not sure if it will be optimized.
>
>This basically confirms my thoughts. I'm thinking about using this index expression instead:
>
>upper(ccode+town+street+ ;
> nvl(str(StNum,4), space(4))+nvl(StNumExt, space(4))+nvl(Unit, space(6)))
Steve Gibson