I often find myself doing the same match in the action as the pattern, to access some part of the input record, e.g.
/^Compiled from \"(.*)\"$/ {
    file_name = gensub("^Compiled from \"(.*)\"$", "\\1", "g");
    print file_name;
}
So the regexp matching is done twice. Is there any way I can access \\1 in the action without matching again? 
I am trying to both reduce on pattert matching and extra code.
 
     
    