Q:

regular expressions: in a JSON array, get the id of the object that has status waiting

I have a JSON response that I want to parse with regular expressions that contains an array of objects like
...
{
 "Id":"01",
 "Subject":"Sub",
 ....
 "Status":"Completed"
 ...
},
{
 "Id":"02",
 "Subject":"Sub",
 ....
 "Status":"Waiting"
 ...
}

and I want to get the id of the object that has status waiting. 
When I parse with "Id": "(.+?)",[\s\S]+?"Subject": "Sub",[\s\S]+?"Status": "Waiting"; it matches from "Waiting" to the first "Id" (backwards); certainly I want the Id of the object that is waiting. 

A:

Try this:
{\s*"Id":"(\d+)"[^}]+"Status":"Waiting"\s*}

