We find out why petrol creates a rainbow effect when in contact with water, and how the behaviour of light can create all these colours.
I believe it is an interference pattern, like what is seen on soap bubbles. If the petrol forms a layer on top of the water that is a few hundred nm thick (1 nm = 1x10–9 meters), then visible light of the right wavelength reflecting off the top of the layer will interfere with light of the same wavelength reflecting off the bottom of the layer. The thickness of the layer and the angle of the light will determine which colors (wavelengths) are muted.
The dark "holes" in thin film interference patterns are interesting ...