Using match1 ---> ^(?a=(\d)).*?(?b=(\d)).*?(?c=(\d))$ Input1: a is a=1 and b is b=2 and c is c=3 Input2: didn't match Using match2 ---> ^(?a=(\d)).*?(?b=(\d))?.*?(?c=(\d))$ Input1: a is a=1 and b is and c is c=3 Input2: a is a=1 and b is and c is c=3