Serial - Interrupt

I´m very interested on this topic. I´m currently working on a project involving XBee and i want the Arduino to "sleep" until it receives serial data from XBee module.

If I follow the pattern described by mem, that is, waiting in a loop until Serial.available() > 0 then the Arduino power consumption will be max, right? or am i wrong here? I plan to run my project on batteries so it would be very nice to reduce Arduino power drain to a minimum.

Right now, i'm doing something like this

void loop() {
   while (Serial.available() < 1) {delay(1)};
   processResponse();
}

But I'm not really sure if this saves power at all (I mean, using delay(1) to sleep). Another question is how much can I increase the delay without risking losing characters? At 9600 baud/s, up to 960 bytes per second means 1 character per millisecond. But how big is the buffer in the atmel uart?

Looking forward to hear from you. Thx in advance.