<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[FunctionList.xml Regular Expressions not parsing properly]]></title><description><![CDATA[<p dir="auto">Yet another Functionlist.xml question…<br />
I added a Fortran parser by following the suggestions from the community, however, it appears that the regular expression parser does not parse correctly.</p>
<p dir="auto">using<br />
“^([^c]).<em>(function|FUNCTION|subroutine|SUBROUTINE)[\s]</em>\K([\w]+)”<br />
and testing on<br />
<a href="https://regex101.com/" rel="nofollow ugc">https://regex101.com/</a><br />
the RE above will correctly provide the subroutine name for all of examples below</p>
<ol>
<li>"       SUBROUTINE bob(a,b,c)"</li>
<li>“SUBROUTINE bob(a,b,c)”</li>
<li>"       SUBROUTINE bob()"</li>
<li>"       SUBROUTINE bob( )"</li>
<li>"       SUBROUTINE bob"</li>
<li>"       SUBROUTINE bob   "</li>
<li>“c       SUBROUTINE bob(a,b,c)”    &lt;ie, no returned value because commented&gt;</li>
<li>" PRIVATE  SUBROUTINE bob(a,b,c) return(d)"</li>
</ol>
<p dir="auto">However, when the RE is used in functionlist.xml, only the lines 1, 4, 6, 7, 8 work.<br />
The following are not parsed.<br />
2. “SUBROUTINE bob(a,b,c)”<br />
3. "       SUBROUTINE bob()"<br />
5. "       SUBROUTINE bob"</p>
<p dir="auto">Any suggestions, anyone?  (of course, the answer should be ‘bob’ for all cases).<br />
…Brian</p>
]]></description><link>https://community.notepad-plus-plus.org/topic/13553/functionlist-xml-regular-expressions-not-parsing-properly</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 13:58:11 GMT</lastBuildDate><atom:link href="https://community.notepad-plus-plus.org/topic/13553.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Mar 2017 19:43:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to FunctionList.xml Regular Expressions not parsing properly on Tue, 04 Apr 2017 15:30:50 GMT]]></title><description><![CDATA[<p dir="auto">FYI: The newest <code>functionList.xml</code> has a language ID table as comment at the top of the <code>associationMap</code>-node.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/23319</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/23319</guid><dc:creator><![CDATA[MAPJe71]]></dc:creator><pubDate>Tue, 04 Apr 2017 15:30:50 GMT</pubDate></item><item><title><![CDATA[Reply to FunctionList.xml Regular Expressions not parsing properly on Tue, 04 Apr 2017 15:26:48 GMT]]></title><description><![CDATA[<p dir="auto">Thanks MAPje71,<br />
All good points.  I couldn’t find a listing of the langID but assumed there must be a better list.  Thanks for langID=59.<br />
Yes, “end function” must be on a single line.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/23318</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/23318</guid><dc:creator><![CDATA[Brian Zelt]]></dc:creator><pubDate>Tue, 04 Apr 2017 15:26:48 GMT</pubDate></item><item><title><![CDATA[Reply to FunctionList.xml Regular Expressions not parsing properly on Mon, 03 Apr 2017 17:26:48 GMT]]></title><description><![CDATA[<p dir="auto">Hi <a class="plugin-mentions-user plugin-mentions-a" href="/user/brian-zelt" aria-label="Profile: Brian-Zelt">@<bdi>Brian-Zelt</bdi></a></p>
<p dir="auto">Are <code>END</code> and <code>SUBROUTINE</code> (or <code>FUNCTION</code>) allowed to be on separate lines?<br />
e.g.</p>
<pre><code class="language-fortran">subroutine MYSUB12
return
end 
  subroutine MYSUB12a

</code></pre>
<p dir="auto">FYI:</p>
<ol>
<li>With the updated <code>commentExpr</code> it’s no longer needed to have <code>(?!c|C)</code> in the <code>mainExpr</code>;</li>
<li>Using a (numbered-)capturing group for the identifier (<code>(\w+)</code> in the <code>mainExpr</code>) doesn’t add functionality;</li>
<li>The <code>nameExpr</code> can be simplified to <code>\w+</code>;</li>
<li>Make sure to encode special XML characters i.e. change <code>&lt;</code> to <code>&amp;lt;</code></li>
<li>Free form style uses <code>langID="25"</code> and fixed form style uses <code>langID="59"</code>. You could create separate (dedicated) parsers or have both styles associated with the same parser.</li>
</ol>
]]></description><link>https://community.notepad-plus-plus.org/post/23304</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/23304</guid><dc:creator><![CDATA[MAPJe71]]></dc:creator><pubDate>Mon, 03 Apr 2017 17:26:48 GMT</pubDate></item><item><title><![CDATA[Reply to FunctionList.xml Regular Expressions not parsing properly on Mon, 03 Apr 2017 15:47:06 GMT]]></title><description><![CDATA[<p dir="auto">Interesting…I played with the commentExpr RE.  And now the parser seems to be working.  I can’t duplicate the original commentExpr but it was copied from someone’s posted example that included only the fortran ! comment and not the start of line c comment.  The original seemed harmless.</p>
<p dir="auto">So, the final fortran parser I have is listed below.  I contains a possible flaw that only a single space is allowed between the ‘end’ and ‘function’, whereas a good RE should allow for any number of spaces, but the RE doesn’t permit <code>\s*</code> in the code below.<br />
`</p>
<pre><code>		&lt;association langID="25" id="fortran_function"/&gt;

		&lt;parser id="fortran_function" displayName="Fortran" commentExpr="(!.*?$|^(?i:c).*?$)"&gt;
			&lt;function
				mainExpr="(?m-s)^(?!c|C).*(?i:(?&lt;!END\s)FUNCTION|(?&lt;!END\s)SUBROUTINE)\s*\K(\w+)"
				displayMode="$functionName$"&gt;
				&lt;functionName&gt;
					&lt;nameExpr expr="[\w]+"/&gt;
				&lt;/functionName&gt;
			&lt;/function&gt;
		&lt;/parser
</code></pre>
<p dir="auto">`<br />
For testing, the following fortran code:</p>
<p dir="auto">`<br />
c----------------------------------------------------------------------<br />
subroutine MYSUB1(iunit0,i,lprt,lnfl2)<br />
return<br />
end</p>
<pre><code>  subroutine MYSUB2( )
  return
  end

  subroutine MYSUB3 (  
   )
  return
  end

  subroutine MYSUB4()
  return
  end

  subroutine MYSUB5   
  return
  end

  subroutine MYSUB6
  return
  end
</code></pre>
<p dir="auto">c      subroutine MYSUB7(a,b,c)<br />
return<br />
end</p>
<pre><code>  private subroutine MYSUB8(a,b,c) return(d) 

  end 
</code></pre>
<p dir="auto">subroutine MYSUB9<br />
return<br />
end</p>
<pre><code>  subroutine MYSUB10
  return
  end subroutine MYSUB10a

  
  !   subroutine MYSUB11(a,b,c)   
  return
  end
</code></pre>
<p dir="auto">c----------------------------------------------------------------------</p>
<p dir="auto">`</p>
<p dir="auto">should produce, a list:<br />
MYSUB1<br />
MYSUB2<br />
MYSUB3<br />
MYSUB4<br />
MYSUB5<br />
MYSUB6<br />
MYSUB8<br />
MYSUB9<br />
MYSUB10<br />
Note that MYSUB7 and MYSUB11 are commented and are correctly not in the list.</p>
<p dir="auto">Using the functionList.xml on existing code files now appears to work for fixed form or free form fortran.  For some files, however, the parser only works if I select language ‘fortran free form’ even though the formatting is language ‘fortran fixed form’.   Copying the contents of such a file to a new file, corrects the issue, so I suspect there may be a file encoding error embedded in the file that is not otherwise apparent.</p>
<p dir="auto">So… the solution appeared to be related to multiple levels RE in the functionList.xml processing.  In this case, perhaps the comment vs the function name (although, I can’t duplicate my original issue).</p>
]]></description><link>https://community.notepad-plus-plus.org/post/23303</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/23303</guid><dc:creator><![CDATA[Brian Zelt]]></dc:creator><pubDate>Mon, 03 Apr 2017 15:47:06 GMT</pubDate></item><item><title><![CDATA[Reply to FunctionList.xml Regular Expressions not parsing properly on Fri, 31 Mar 2017 22:03:05 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/scott-sumner" aria-label="Profile: Scott-Sumner">@<bdi>Scott-Sumner</bdi></a><br />
Uhm…to be honest it hadn’t even crossed my mind to look up RB’s policy on posting a copy of the RegEx Tree.</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/brian-zelt" aria-label="Profile: Brian-Zelt">@<bdi>Brian-Zelt</bdi></a><br />
Yes, I’ve looked at NP++'s FunctionList code in the past (SourceForge era). I created a <a href="https://sourceforge.net/p/notepad-plus/patches/548/" rel="nofollow ugc">patch</a> for it that never got merged. On request I am in the process of re-creating that patch on current code base in addition to cleaning up and adding RE explanation as comment to <code>functionList.xml</code>.<br />
There are known issues with the RE engine (as explained by <a class="plugin-mentions-user plugin-mentions-a" href="/user/guy038" aria-label="Profile: guy038">@<bdi>guy038</bdi></a> <a href="https://notepad-plus-plus.org/community/topic/13513/proximity-search/11" rel="nofollow ugc">here</a>). Both “Search (&amp; Replace)” and FunctionList use the same RE engine. When a RE works with “Search (&amp; Replace)” it will work with FunctionList.<br />
However, defining a parser in FunctionList can be tricky.</p>
<p dir="auto">Maybe you can post the complete parser so I (or anyone else) can check it.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/23240</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/23240</guid><dc:creator><![CDATA[MAPJe71]]></dc:creator><pubDate>Fri, 31 Mar 2017 22:03:05 GMT</pubDate></item><item><title><![CDATA[Reply to FunctionList.xml Regular Expressions not parsing properly on Fri, 31 Mar 2017 19:22:36 GMT]]></title><description><![CDATA[<p dir="auto">Thanks S.S., I haven’t read RB policy’s with respect to re-posting the RB output.  RB was correctly referenced to being the source.</p>
<p dir="auto">Again, the point this thread is whether or not NP++ has a bug in the RE processing for FunctionList.xml.</p>
<p dir="auto">Has anybody looked at the source code for NP++ for FunctionList?</p>
]]></description><link>https://community.notepad-plus-plus.org/post/23237</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/23237</guid><dc:creator><![CDATA[Brian Zelt]]></dc:creator><pubDate>Fri, 31 Mar 2017 19:22:36 GMT</pubDate></item><item><title><![CDATA[Reply to FunctionList.xml Regular Expressions not parsing properly on Fri, 31 Mar 2017 12:14:01 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/mapje71" aria-label="Profile: MAPJe71">@<bdi>MAPJe71</bdi></a></p>
<p dir="auto">So…I’ve kinda wondered in the past about what you did in your post, so it is a good time to ask.  You posted RegexBuddy output.  So people get the benefit of RB’s “wisdom” without paying for it (like we have - :) ).  It sorta seems wrong to me, a little bit, but is it OK to do?  Maybe a question best for Jan…</p>
<p dir="auto">So here’s a great example.  Yesterday I answered a regex question (<a href="https://notepad-plus-plus.org/community/topic/13556/replace-last-value-in-row-with-0" rel="nofollow ugc">https://notepad-plus-plus.org/community/topic/13556/replace-last-value-in-row-with-0</a>), and I supplied my own explanation, but I was tempted to use RB to generate the explanation, but in the end I didn’t.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/23224</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/23224</guid><dc:creator><![CDATA[Scott Sumner]]></dc:creator><pubDate>Fri, 31 Mar 2017 12:14:01 GMT</pubDate></item><item><title><![CDATA[Reply to FunctionList.xml Regular Expressions not parsing properly on Fri, 31 Mar 2017 03:31:43 GMT]]></title><description><![CDATA[<p dir="auto">Thanks.  I forgot about regexbuddy.  Correct, the RE I supplied did not work on the one example.  I believe I missed an additional asterix after the initial group when I used the wrong quotes.  However, your proposal works better, with the addition of:</p>
<p dir="auto"><code>(?m-s)^(?!c|C).*(?i:FUNCTION|SUBROUTINE)\s*\K\w+</code></p>
<p dir="auto">The point remains, however, that when this RE is inserted in functionlist.xml,  NP++ does not parse the subroutines properly as described in the original inquiry.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/23217</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/23217</guid><dc:creator><![CDATA[Brian Zelt]]></dc:creator><pubDate>Fri, 31 Mar 2017 03:31:43 GMT</pubDate></item><item><title><![CDATA[Reply to FunctionList.xml Regular Expressions not parsing properly on Thu, 30 Mar 2017 17:16:11 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto">was not requesting a Fortran parser</p>
</blockquote>
<p dir="auto">My bad, retry …</p>
<p dir="auto">I tried your RE <code>^([^c]).*(function|FUNCTION|subroutine|SUBROUTINE)[\s]*\K([\w]+)</code><br />
on <a href="https://regex101.com/" rel="nofollow ugc">regex101.com</a> with flags/options <code>m</code> and <code>g</code> set (even tried different combinations) but was not able to get all the subroutine names from following examples (I presumed the double quotes had to be excluded):</p>
<pre><code class="language-Fortran"> SUBROUTINE bob(a,b,c)
SUBROUTINE bob(a,b,c)
 SUBROUTINE bob()
 SUBROUTINE bob( )
 SUBROUTINE bob
 SUBROUTINE bob 
c SUBROUTINE bob(a,b,c)
 PRIVATE SUBROUTINE bob(a,b,c) return(d)
</code></pre>
<p dir="auto">i.e. the second example does not give a match.</p>
<p dir="auto">This was actually what I expected after reading your RE i.e. I did not expect <a href="https://regex101.com/" rel="nofollow ugc">regex101.com</a> to</p>
<blockquote>
<p dir="auto">correctly provide the subroutine name for all of examples</p>
</blockquote>
<p dir="auto">just as N++ does not.</p>
<hr />
<p dir="auto">This one will …</p>
<pre><code>(?m-s)^(?!c).*(?i:FUNCTION|SUBROUTINE)\s*\K\w+    
</code></pre>
<ul>
<li><a href="http://www.regular-expressions.info/modifiers.html" rel="nofollow ugc">Use these options for the whole regular expression</a> <code>(?m-s)</code>
<ul>
<li><a href="http://www.regular-expressions.info/modifiers.html" rel="nofollow ugc">^$ match at line breaks</a> <code>m</code></li>
<li><a href="http://www.regular-expressions.info/modifiers.html" rel="nofollow ugc">(hyphen inverts the meaning of the letters that follow)</a> <code>-</code></li>
<li><a href="http://www.regular-expressions.info/modifiers.html" rel="nofollow ugc">Dot doesn’t match line breaks</a> <code>s</code></li>
</ul>
</li>
<li><a href="http://www.regular-expressions.info/anchors.html" rel="nofollow ugc">Assert position at the beginning of a line (at beginning of the string or after a line break character) (carriage return and line feed, form feed)</a> <code>^</code></li>
<li><a href="http://www.regular-expressions.info/lookaround.html" rel="nofollow ugc">Assert that it is impossible to match the regex below starting at this position (negative lookahead)</a> <code>(?!c)</code>
<ul>
<li><a href="http://www.regular-expressions.info/characters.html" rel="nofollow ugc">Match the character “c” literally (case sensitive)</a> <code>c</code></li>
</ul>
</li>
<li><a href="http://www.regular-expressions.info/dot.html" rel="nofollow ugc">Match any single character that is NOT a line break character (line feed, carriage return, form feed)</a> <code>.*</code>
<ul>
<li><a href="http://www.regular-expressions.info/repeat.html" rel="nofollow ugc">Between zero and unlimited times, as many times as possible, giving back as needed (greedy)</a> <code>*</code></li>
</ul>
</li>
<li><a href="http://www.regular-expressions.info/modifiers.html" rel="nofollow ugc">Match the regex below with these options</a> <code>(?i:FUNCTION|SUBROUTINE)</code>
<ul>
<li><a href="http://www.regular-expressions.info/modifiers.html" rel="nofollow ugc">Case insensitive</a> <code>i</code></li>
<li><a href="http://www.regular-expressions.info/alternation.html" rel="nofollow ugc">Match this alternative (attempting the next alternative only if this one fails)</a> <code>FUNCTION</code>
<ul>
<li><a href="http://www.regular-expressions.info/characters.html" rel="nofollow ugc">Match the character string “FUNCTION” literally (case insensitive)</a> <code>FUNCTION</code></li>
</ul>
</li>
<li><a href="http://www.regular-expressions.info/alternation.html" rel="nofollow ugc">Or match this alternative (the entire group fails if this one fails to match)</a> <code>SUBROUTINE</code>
<ul>
<li><a href="http://www.regular-expressions.info/characters.html" rel="nofollow ugc">Match the character string “SUBROUTINE” literally (case insensitive)</a> <code>SUBROUTINE</code></li>
</ul>
</li>
</ul>
</li>
<li><a href="http://www.regular-expressions.info/shorthand.html" rel="nofollow ugc">Match a single character that is a “whitespace character” (any space in the active code page, tab, line feed, carriage return, vertical tab, form feed)</a> <code>\s*</code>
<ul>
<li><a href="http://www.regular-expressions.info/repeat.html" rel="nofollow ugc">Between zero and unlimited times, as many times as possible, giving back as needed (greedy)</a> <code>*</code></li>
</ul>
</li>
<li><a href="http://www.regular-expressions.info/keep.html" rel="nofollow ugc">Keep the text matched so far out of the overall regex match</a> <code>\K</code></li>
<li><a href="http://www.regular-expressions.info/shorthand.html" rel="nofollow ugc">Match a single character that is a “word character” (letter, digit, or underscore in the active code page)</a> <code>\w+</code>
<ul>
<li><a href="http://www.regular-expressions.info/repeat.html" rel="nofollow ugc">Between one and unlimited times, as many times as possible, giving back as needed (greedy)</a> <code>+</code></li>
</ul>
</li>
</ul>
<p dir="auto">Created with <a href="http://www.regexbuddy.com/" rel="nofollow ugc">RegexBuddy</a></p>
]]></description><link>https://community.notepad-plus-plus.org/post/23199</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/23199</guid><dc:creator><![CDATA[MAPJe71]]></dc:creator><pubDate>Thu, 30 Mar 2017 17:16:11 GMT</pubDate></item><item><title><![CDATA[Reply to FunctionList.xml Regular Expressions not parsing properly on Thu, 30 Mar 2017 16:33:03 GMT]]></title><description><![CDATA[<p dir="auto">Thanks, for the example.  It, however, does not match all of the examples I listed.</p>
<p dir="auto">My point also, however, was not requesting a Fortran parser  (although appreciated) but rather that NP++ was not parsing the RE as expected.  That is, there appears to be a bug(s) in the implementation of RE in NP++ or how NP++ is sending text strings to be parsed.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/23196</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/23196</guid><dc:creator><![CDATA[Brian Zelt]]></dc:creator><pubDate>Thu, 30 Mar 2017 16:33:03 GMT</pubDate></item><item><title><![CDATA[Reply to FunctionList.xml Regular Expressions not parsing properly on Wed, 29 Mar 2017 22:21:44 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/brian-zelt" aria-label="Profile: brian-zelt">@<bdi>brian-zelt</bdi></a><br />
Enclose the text in back ticks in stead of double quotes or read the <a href="http://daringfireball.net/projects/markdown/syntax" rel="nofollow ugc">manual for markdown syntax </a>.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/23180</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/23180</guid><dc:creator><![CDATA[MAPJe71]]></dc:creator><pubDate>Wed, 29 Mar 2017 22:21:44 GMT</pubDate></item><item><title><![CDATA[Reply to FunctionList.xml Regular Expressions not parsing properly on Wed, 29 Mar 2017 22:06:57 GMT]]></title><description><![CDATA[<p dir="auto">I guess I’m not doing this correctly:<br />
here {star} means asterix<br />
“^([^c]).{star}(function|FUNCTION|subroutine|SUBROUTINE)[\s]{star}\K([\w]+)”</p>
]]></description><link>https://community.notepad-plus-plus.org/post/23179</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/23179</guid><dc:creator><![CDATA[Brian Zelt]]></dc:creator><pubDate>Wed, 29 Mar 2017 22:06:57 GMT</pubDate></item><item><title><![CDATA[Reply to FunctionList.xml Regular Expressions not parsing properly on Wed, 29 Mar 2017 21:29:08 GMT]]></title><description><![CDATA[<p dir="auto">Should have tested it with your examples before posting it.<br />
Uses the exclamation mark as the comment character though.</p>
<pre><code class="language-XML">			&lt;!--
			|   https://notepad-plus-plus.org/community/topic/11059/custom-functions-list-rules
			\--&gt;
			&lt;parser
				displayName="[TODO] Fortran 90/95/2k - FORmula TRANslation Free Form style"
				id         ="fortran_function"
				commentExpr="(?x)                                               # Utilize inline comments (see `RegEx - Pattern Modifiers`)
								(?m-s:!.*$)                                     # Single Line Comment
							"
			&gt;
				&lt;function
					mainExpr="(?x)                                              # Utilize inline comments (see `RegEx - Pattern Modifiers`)
							(?i:FUNCTION|SUBROUTINE)\s+
							\K                                                  # keep the text matched so far, out of the overall match
							\w+
							(?:
								\s*
								\(
								[^()]*
								\)
							)?
						"
				&gt;
					&lt;!-- comment out the following node to display the method with its parameters --&gt;
					&lt;functionName&gt;
						&lt;nameExpr expr="\w+" /&gt;
					&lt;/functionName&gt;
				&lt;/function&gt;
			&lt;/parser&gt;
</code></pre>
]]></description><link>https://community.notepad-plus-plus.org/post/23177</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/23177</guid><dc:creator><![CDATA[MAPJe71]]></dc:creator><pubDate>Wed, 29 Mar 2017 21:29:08 GMT</pubDate></item><item><title><![CDATA[Reply to FunctionList.xml Regular Expressions not parsing properly on Wed, 29 Mar 2017 21:20:27 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/brian-zelt" aria-label="Profile: brian-zelt">@<bdi>brian-zelt</bdi></a><br />
This is the Fortran parser I currently have in my <code>functionList.xml</code>:</p>
<pre><code class="language-XML">			&lt;!--
			|   https://notepad-plus-plus.org/community/topic/11059/custom-functions-list-rules
			\--&gt;
			&lt;parser
				displayName="[TODO] Fortran 90/95/2k - FORmula TRANslation Free Form style"
				id         ="fortran_function"
				commentExpr="(?x)                                               # Utilize inline comments (see `RegEx - Pattern Modifiers`)
								(?m-s:!.*$)                                     # Single Line Comment
							"
			&gt;
				&lt;function
					mainExpr="(?x)                                              # Utilize inline comments (see `RegEx - Pattern Modifiers`)
							(?-i:function|subroutine)\s+
							\K                                                  # keep the text matched so far, out of the overall match
							\w+
							\s*\(
							[^()]*
							\s*\)
						"
				&gt;
					&lt;!-- comment out the following node to display the method with its parameters --&gt;
					&lt;functionName&gt;
						&lt;nameExpr expr="\w+" /&gt;
					&lt;/functionName&gt;
				&lt;/function&gt;
			&lt;/parser&gt;

</code></pre>
]]></description><link>https://community.notepad-plus-plus.org/post/23176</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/23176</guid><dc:creator><![CDATA[MAPJe71]]></dc:creator><pubDate>Wed, 29 Mar 2017 21:20:27 GMT</pubDate></item><item><title><![CDATA[Reply to FunctionList.xml Regular Expressions not parsing properly on Wed, 29 Mar 2017 21:07:36 GMT]]></title><description><![CDATA[<p dir="auto"><code>(?m)^(?!c)\h*(?i:PRIVATE\s+)?(?i:FUNCTION|SUBROUTINE)\s\K\w+</code></p>
]]></description><link>https://community.notepad-plus-plus.org/post/23175</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/23175</guid><dc:creator><![CDATA[MAPJe71]]></dc:creator><pubDate>Wed, 29 Mar 2017 21:07:36 GMT</pubDate></item><item><title><![CDATA[Reply to FunctionList.xml Regular Expressions not parsing properly on Wed, 29 Mar 2017 21:01:49 GMT]]></title><description><![CDATA[<p dir="auto">Sorry, the asterix were missing when I copied:<br />
“^([^c]).<em>(function|FUNCTION|subroutine|SUBROUTINE)[\s]</em>\K([\w]+)”</p>
]]></description><link>https://community.notepad-plus-plus.org/post/23174</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/23174</guid><dc:creator><![CDATA[Brian Zelt]]></dc:creator><pubDate>Wed, 29 Mar 2017 21:01:49 GMT</pubDate></item></channel></rss>