regexp greedy and recursive match