title: in awk, how to search for complex pattern combination after common tolower( ) operation
body: <p>I'm trying to select some paper titles from a long list using keywords.<br>
  Here is the sample line which is simplified for the purpose of this question.  </p>
  
  <pre><code>tolower($0) ~ /model selection/ || tolower($0) ~ /structure learning/{print}
  </code></pre>
  
  <p>With this line, I want to print any line containing 'model selection' or 'structure learning'. But for every pattern I add in that command line, I have to put this <code>tolower($0) ~</code> expression. Otherwise, awk will not print lines containing <code>Model selection</code> or <code>Structure learning</code>.  Isn't there a way to apply the pattern <code>after</code> tolower($0) ~ function?  </p>
  
  <p>After posting this question, I realized what I really want to do is to use logical pattern operation with the output of the tolower($0), something like (if I want to print line with <code>pattern1 and (pattern2 or pattern3)</code>)  </p>
  
  <pre><code>tolower($0) ~ /pattern1&amp;(pattern2|pattern3)/{print}  
  </code></pre>
  
  <p>without repeating tolower()..  and also I want to search for pattern with tolower(), like /RL/ in $0.<br>
  Of course I can do   </p>
  
  <pre><code>/RL/ || (tolower($0) ~ /pattern1/ &amp;&amp; tolower($0) ~ /pattern2|pattern3/) {print}
  </code></pre>
  
  <p>But I want to use tolower() only once.</p>