Thanks Shlomi, thats a good idea. However at the same time I was trying to understand if something is wrong in my regex. Why would $2 capture the number as I have used :-
(?:(91\d{10}|0\d{10}|[7-9]\d{9}|0\d{11})|(?:(?:ph|cal)(\d+))) This would in my understanding match either number with regex 91\d{10}|0\d{10}|[7-9]\d{9}|0\d{11} or with call followed by digits. In my case 4 ( price for free consultation call92504060) why would $1 store an empty string and $2 actually stores the number part ? Regards, Punit