went to do some researching to find out more as singapore's news can be quite bias in a way or another. and other than what the newpaper and straits time metioned, here are some extra details
Reuters: Zidane has not explained his actions publicly although he is expected to later this week. Materazzi said the incident started when he grabbed Zidane by the shirt. "He turned round, he said to me with a sneer, looking at me up and down, mockingly 'If you really want my shirt, I'll give it to you afterwards'," the Italian said.
maybe it's my bias point of view.. but i didn't see Zidane sneering at him, or looking up and down. that Italian denied scolding Zidane a dirty terrorist, and also insulting his mom or sister.. HOWEVER, he admitted that he DID insult him during the match. and he said: "It was one of those insults you're told tens of times and that always fly around the pitch."
Wikipedia (suprisingly): According to these reports, Materazzi spoke in Italian - a language understood by Zidane due to his time spent with Juventus F.C. - and told him: "Hold on, wait, that one's [referring to the pass] not for a feccia [i.e. 'shit', 'scum'] like you."
Zidane then reacted to Materazzi picking his shirt, and allegedly said that, if Materazzi really wanted to have his shirt, he could have it afterwards. It is unclear what he specifically said and if he told Materazzi to stop picking his shirt beforehand.
Materazzi allegedly replied: "I'd rather take the shirt off your wife." As the players walked forward, he reportedly added: "We all know you are the son of a terrorist whore." (Zidane is of Arab Algerian descent.) Then, just before the headbutt, he is seen saying: "Vaffanculo" (i.e. 'fuck off')
it was also said that Zidane regretted what he had done (France defeat was indirectly caused by his headbutt/red card/absence) but, he doesn't feel sorry about what he'd done to the Italian defender.