(102.*)) will capture everything till last block of ()s not just one block containing 102 and related row values. I tried this using GNU sed 4.2.1 and got different match from one in your code block
–
Hrvoje ŠpoljarOct 7 '12 at 21:17

@Hrvojepoljar: Fixed - Thanks - I should have added another block of data to test, like I said ... tuned to the example.
–
IainOct 7 '12 at 21:56