Indian shares fell on Wednesday to a three-week closing low, as investors turned cautious a day before the expiry of derivatives contracts, while rising oil prices also dampened sentiment. The broader NSE index closed 0.91 percent lower at 10,671.40, after shedding over 1 percent in afternoon trade. The benchmark BSE index fell 0.77 percent to 35,217.11. Energy stocks were among the biggest drags, with the Nifty Energy index closing 2.5 pct lower.