Check first specific string after a pattern

Hi,

I've a file with content as below

first_block_list{
a:5
b:3
c:8
}
new_store_list(
a:1000
b:200
c:3343
)
first_item_list{
a:10
b:20
c:30
}
second_item_list{
a:100
b:40
c:100
 {c_a:20,c_b:40,c_c:40}
}
third_item_list{
a:40
{a_a:5,a_b:35}
b:4
c:5
}

Now I want to print the lines based on ' _item_list ' and then ' b:<value> '.

eg in this is

first_item_list:20
second_item_list:40
third_item_list:4

Any idea how to do this.

Would

awk '/_item_list/ {IL=1; printf "%s", substr ($0, 1, length-1)} IL && /^b:/ {IL=0; printf "%s\n", substr ($0, 2)}' file
first_item_list:20
second_item_list:40
third_item_list:4

come close?