how can awk match multi pattern in a string

Hi all, I need to category the processes in my system with awk. And for now, there are several command with similar name, so i have to match more than one pattern to pick it out. for instance:
[string1]bin[string2]rundb[string3]
the string1, 2 & 3 may contain word, number, blank or "/". The "bin" should be ahead "rundb"

My question is how i can pick up this string by matching "bin" and "rundb" in one regular expression....

Sounds it like a normal question for awk, but i could not find it from the google. Please kindly provide your answer or suggestion here. Thanks in adv.

awk '$0 ~ /bin.*rundb/'

Thanks, it works perfectly. and easier than the way i tried.....

another issue comes out here. As the patter keeps change, I want to put it into a variable and reference the variable in a regular expression. Like below:
key="bin.*rundb"
if (fieldname ~ /key/) {
printf("%s\n", fieldname);
}

I tried "'$key'", '"$key" and $key in the regular expression, but all won't work. Do you know how can i accomplish it?

Try this:

awk -v k=$key '$0 ~ k'

Regards

Got some unexpected answer below:
$ nawk -v k="ora_qmn0_sid" '$0 ~ k' sample.txt
28321 65548 1 59 0 569M 533M sleep 0:00 0 0.00% 0.00% 0.00% 0.00% usr mc_off ora_qmn0_sid
$ awk -v k="ora_qmn0_sid" '$0 ~ k' sample.txt
awk: syntax error near line 1
awk: bailing out near line 1
$ awk -v k="ora_qmn0_sid" '$0 ~/"'$k'"/' sample.txt
awk: syntax error near line 1
awk: bailing out near line 1

Seems that the "-v" option does not work on solaris 9&10. I also try above "awk -v" command on a linux box, and it works fine......a little bit weird to me.

but another issue i met is that '$0 ~ k' works but $0 ~/"'$k'"/ not
{
fieldname=""
key="ora_.*_sid"

# if (fieldname ~ /"'$k'"/) {
if (fieldname ~ key) {
printf("%s\n", fieldname);
}
}
The commented line won't work as the one below it. Does anyone know the reason?