<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.liberty-eiffel.org/index.php?action=history&amp;feed=atom&amp;title=Lib%2Fregular_expression</id>
	<title>Lib/regular expression - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.liberty-eiffel.org/index.php?action=history&amp;feed=atom&amp;title=Lib%2Fregular_expression"/>
	<link rel="alternate" type="text/html" href="https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;action=history"/>
	<updated>2026-04-14T02:45:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.0</generator>
	<entry>
		<id>https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=2495&amp;oldid=prev</id>
		<title>Hzwakenberg: /* Coming soon? */</title>
		<link rel="alternate" type="text/html" href="https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=2495&amp;oldid=prev"/>
		<updated>2016-06-20T06:54:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Coming soon?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:54, 20 June 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 47:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 47:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* The JAVA regular expressions (help wanted, trick inherit PERL5 builder and make the hungry repetition)&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* The JAVA regular expressions (help wanted, trick inherit PERL5 builder and make the hungry repetition)&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;''If you want to look &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;forwards&lt;/del&gt;, consider implementing Perl 6 regular expressions (now called Perl 6 rules, because they go so far beyond regexps). Perl 6 rules combine traditional regexps with parsing grammars, eliminating the use for tools such as lex/yacc. Here are some details:''&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;''If you want to look &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;forward&lt;/ins&gt;, consider implementing Perl 6 regular expressions (now called Perl 6 rules, because they go so far beyond regexps). Perl 6 rules combine traditional regexps with parsing grammars, eliminating the use for tools such as lex/yacc. Here are some details:''&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Larry Wall's explanation of the changes: http://dev.perl.org/perl6/doc/design/apo/A05.html&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Larry Wall's explanation of the changes: http://dev.perl.org/perl6/doc/design/apo/A05.html&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Hzwakenberg</name></author>
	</entry>
	<entry>
		<id>https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=2449&amp;oldid=prev</id>
		<title>Dkearns: s/LibertyEiffel/Liberty Eiffel/</title>
		<link rel="alternate" type="text/html" href="https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=2449&amp;oldid=prev"/>
		<updated>2016-06-16T11:37:19Z</updated>

		<summary type="html">&lt;p&gt;s/LibertyEiffel/Liberty Eiffel/&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:37, 16 June 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: Library]]&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: Library]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Regular expressions in &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;LibertyEiffel&lt;/del&gt; ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Regular expressions in &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Liberty Eiffel&lt;/ins&gt; ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;LibertyEiffel&lt;/del&gt;, a cluster is included that allows you to use either POSIX regular expressions or PERL5 regular expressions.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Liberty Eiffel&lt;/ins&gt;, a cluster is included that allows you to use either POSIX regular expressions or PERL5 regular expressions.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Currently the regular expression cluster makes use of the backtracking cluster. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Currently the regular expression cluster makes use of the backtracking cluster. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dkearns</name></author>
	</entry>
	<entry>
		<id>https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=1949&amp;oldid=prev</id>
		<title>Hzwakenberg at 10:47, 7 September 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=1949&amp;oldid=prev"/>
		<updated>2014-09-07T10:47:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:47, 7 September 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: Library]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Regular expressions in LibertyEiffel ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Regular expressions in LibertyEiffel ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In LibertyEiffel, a cluster is included that allows you to use either POSIX regular expressions or PERL5 regular expressions.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In LibertyEiffel, a cluster is included that allows you to use either POSIX regular expressions or PERL5 regular expressions.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Hzwakenberg</name></author>
	</entry>
	<entry>
		<id>https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=1903&amp;oldid=prev</id>
		<title>Hzwakenberg at 19:13, 5 September 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=1903&amp;oldid=prev"/>
		<updated>2014-09-05T19:13:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:13, 5 September 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Regular expressions in LibertyEiffel ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Smarteiffel]]&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In LibertyEiffel, a cluster is included that allows you to use either POSIX regular expressions or PERL5 regular expressions.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Regular expressions in SmartEiffel 2.2 ==&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;As from version 2.2 of SmartEiffel, a cluster is included that allows you to use either&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;POSIX regular expressions or PERL5 regular expressions.&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Currently the regular expression cluster makes use of the backtracking cluster. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Currently the regular expression cluster makes use of the backtracking cluster. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Hzwakenberg</name></author>
	</entry>
	<entry>
		<id>https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=1636&amp;oldid=prev</id>
		<title>Ramack at 21:33, 5 March 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=1636&amp;oldid=prev"/>
		<updated>2013-03-05T21:33:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:33, 5 March 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;SmartEiffel&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Smarteiffel&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Regular expressions in SmartEiffel 2.2 ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Regular expressions in SmartEiffel 2.2 ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ramack</name></author>
	</entry>
	<entry>
		<id>https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=1556&amp;oldid=prev</id>
		<title>Ramack at 20:55, 4 March 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=1556&amp;oldid=prev"/>
		<updated>2013-03-04T20:55:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:55, 4 March 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:SmartEiffel]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Regular expressions in SmartEiffel 2.2 ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Regular expressions in SmartEiffel 2.2 ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ramack</name></author>
	</entry>
	<entry>
		<id>https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=732&amp;oldid=prev</id>
		<title>Ramack: 11 revisions:&amp;#32;initial import from SamrtEiffel Wiki - The Grand SmartEiffel Book</title>
		<link rel="alternate" type="text/html" href="https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=732&amp;oldid=prev"/>
		<updated>2013-03-03T21:04:58Z</updated>

		<summary type="html">&lt;p&gt;11 revisions: initial import from SamrtEiffel Wiki - The Grand SmartEiffel Book&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Regular expressions in SmartEiffel 2.2 ==&lt;br /&gt;
&lt;br /&gt;
As from version 2.2 of SmartEiffel, a cluster is included that allows you to use either&lt;br /&gt;
POSIX regular expressions or PERL5 regular expressions.&lt;br /&gt;
&lt;br /&gt;
Currently the regular expression cluster makes use of the backtracking cluster. &lt;br /&gt;
&lt;br /&gt;
The main restriction comes from the character set used; this is the ASCII character set.&lt;br /&gt;
UNICODE characters are not supported at the moment.&lt;br /&gt;
&lt;br /&gt;
Another restriction is that most of the common character escapes do not work:&lt;br /&gt;
\n is a literal n, not new line; \t is a literal t, not tab; etc.. The reason is that we thought that&lt;br /&gt;
users could do such preprocessing themselves, and we had a schizophrenic conflict&lt;br /&gt;
between %N and \n. Your opinion about that point is very welcome.&lt;br /&gt;
&lt;br /&gt;
Known problems:&lt;br /&gt;
* The construct &amp;lt;TT&amp;gt;(a?b?)*&amp;lt;/TT&amp;gt; causes an infinite loop and crashes with a stack overflow.&lt;br /&gt;
* The construct &amp;lt;TT&amp;gt;(a+)+&amp;lt;/TT&amp;gt; can use so much CPU that you believe that it is buggy.&lt;br /&gt;
* The construct &amp;lt;TT&amp;gt;(a(b)?)*&amp;lt;/TT&amp;gt; applied on &amp;lt;TT&amp;gt;aba&amp;lt;/TT&amp;gt; will give you a group 2 not empty, beginning at 2 and finishing at 2.&lt;br /&gt;
&lt;br /&gt;
As always, see the tutorial to learn how to use regular expressions.&lt;br /&gt;
&lt;br /&gt;
== The POSIX regular expressions ==&lt;br /&gt;
&lt;br /&gt;
The POSIX regular expression are supported except for the [=...=] construct (same class that ...).&lt;br /&gt;
&lt;br /&gt;
See POSIX 1003.2, section 2.8 (Regular Expression Notation). [http://www.unix.org/ www.unix.org]&lt;br /&gt;
&lt;br /&gt;
On LINUX: man 7 regex.&lt;br /&gt;
&lt;br /&gt;
== The PERL 5 regular expressions ==&lt;br /&gt;
&lt;br /&gt;
With the main restriction that UNICODE is not handled, most of the PERL 5 regular expressions is implemented.&lt;br /&gt;
See [http://perldoc.perl.org/perlre.html Perl Regular expressions].&lt;br /&gt;
&lt;br /&gt;
Missing things:&lt;br /&gt;
* The experimental behaviours are not integrated &lt;br /&gt;
* Some construct like [[:] that are well interpreted by perl produce an error. In these cases, you must write [:[].&lt;br /&gt;
&lt;br /&gt;
Added things:&lt;br /&gt;
* The look behind (negative or positive) is not restricted to have a fixed length.&lt;br /&gt;
* The POSIX constructs [:&amp;lt;:] and [:&amp;gt;:] are allowed (it stands for begin and end of words).&lt;br /&gt;
&lt;br /&gt;
== Coming soon? ==&lt;br /&gt;
&lt;br /&gt;
* The shell (bash) file matching (help wanted)&lt;br /&gt;
* The basic regular expression (help wanted)&lt;br /&gt;
* The JAVA regular expressions (help wanted, trick inherit PERL5 builder and make the hungry repetition)&lt;br /&gt;
&lt;br /&gt;
''If you want to look forwards, consider implementing Perl 6 regular expressions (now called Perl 6 rules, because they go so far beyond regexps). Perl 6 rules combine traditional regexps with parsing grammars, eliminating the use for tools such as lex/yacc. Here are some details:''&lt;br /&gt;
&lt;br /&gt;
* Larry Wall's explanation of the changes: http://dev.perl.org/perl6/doc/design/apo/A05.html&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Damian Conway's specification of Perl 6 rules: http://dev.perl.org/perl6/doc/design/exe/E05.html&lt;br /&gt;
&lt;br /&gt;
* Patrick Michaud's tutorial (assumes knowledge of Perl 5 regexps): http://dev.perl.org/perl6/doc/design/syn/S05.html&lt;br /&gt;
&lt;br /&gt;
* IBM overview of Perl 6 Rules: http://www-128.ibm.com/developerworks/linux/library/l-cpregex.html?ca=dgr-lnxw01Perl6Gram&lt;br /&gt;
&lt;br /&gt;
[[User:Eiffel|Roger Browne]] 23:12, 4 Dec 2005 (CET)&lt;/div&gt;</summary>
		<author><name>Ramack</name></author>
	</entry>
	<entry>
		<id>https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=725&amp;oldid=prev</id>
		<title>201.252.190.101: typos, grammar</title>
		<link rel="alternate" type="text/html" href="https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=725&amp;oldid=prev"/>
		<updated>2005-12-07T17:00:14Z</updated>

		<summary type="html">&lt;p&gt;typos, grammar&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Regular expressions of SmartEiffel 2.2 ==&lt;br /&gt;
&lt;br /&gt;
Since SmartEiffel 2.2 a cluster is included that allows you to use either POSIX regular expressions or PERL5 regular expressions.&lt;br /&gt;
&lt;br /&gt;
Currently the regular expression cluster makes use of the backtracking cluster. &lt;br /&gt;
&lt;br /&gt;
The main restriction comes from the character set used. The used one is the ASCII character set. UNICODE characters are not supported currently.&lt;br /&gt;
&lt;br /&gt;
Another restriction is that most of the common character escapes are not made: \n is n not new line, \t is t not tab, etc.. The reason is that we supposed that such a preprocessing can be made by users and we had a schizophrenic conflict between %N and \n. Your opinion about that point is very welcome.&lt;br /&gt;
&lt;br /&gt;
Known problems:&lt;br /&gt;
* The construct (a?b?)* gives an infinite loop and fills the stack until crash.&lt;br /&gt;
* The construct (a+)+ can use so much CPU that you believe that it is buggy.&lt;br /&gt;
* The construct (a(b)?)* applied on aba will give you a group 2 not empty, beginning at 2 and finishing at 2.&lt;br /&gt;
&lt;br /&gt;
As always, see the tutorial to learn how to use regular expressions.&lt;br /&gt;
&lt;br /&gt;
== The POSIX regular expressions ==&lt;br /&gt;
&lt;br /&gt;
The POSIX regular expression are supported except for the [=...=] construct (same class that ...).&lt;br /&gt;
&lt;br /&gt;
See POSIX 1003.2, section 2.8 (Regular Expression Notation). [http://www.unix.org/ www.unix.org]&lt;br /&gt;
&lt;br /&gt;
On LINUX: man 7 regex.&lt;br /&gt;
&lt;br /&gt;
== The PERL 5 regular expressions ==&lt;br /&gt;
&lt;br /&gt;
With the main restriction that UNICODE is not handled, most of the PERL 5 regular expressions is implemented.&lt;br /&gt;
See [http://perldoc.perl.org/perlre.html Perl Regular expressions].&lt;br /&gt;
&lt;br /&gt;
Missing things:&lt;br /&gt;
* The experimental behaviours are not integrated &lt;br /&gt;
* Some construct like [[:] that are well interpreted by perl produce an error. In these cases, you must write [:[].&lt;br /&gt;
&lt;br /&gt;
Added things:&lt;br /&gt;
* The look behind (negative or positive) is not restricted to have a fixed length.&lt;br /&gt;
* The POSIX constructs [:&amp;lt;:] and [:&amp;gt;:] are allowed (it stands for begin and end of words).&lt;br /&gt;
&lt;br /&gt;
== Coming soon? ==&lt;br /&gt;
&lt;br /&gt;
* The shell (bash) file matching (help wanted)&lt;br /&gt;
* The basic regular expression (help wanted)&lt;br /&gt;
* The JAVA regular expressions (help wanted, trick inherit PERL5 builder and make the hungry repetition)&lt;br /&gt;
&lt;br /&gt;
''If you want to look forwards, consider implementing Perl 6 regular expressions (now called Perl 6 rules, because they go so far beyond regexps). Perl 6 rules combine traditional regexps with parsing grammars, eliminating the use for tools such as lex/yacc. Here are some details:''&lt;br /&gt;
&lt;br /&gt;
* Larry Wall's explanation of the changes: http://dev.perl.org/perl6/doc/design/apo/A05.html&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Damian Conway's specification of Perl 6 rules: http://dev.perl.org/perl6/doc/design/exe/E05.html&lt;br /&gt;
&lt;br /&gt;
* Patrick Michaud's tutorial (assumes knowledge of Perl 5 regexps): http://dev.perl.org/perl6/doc/design/syn/S05.html&lt;br /&gt;
&lt;br /&gt;
* IBM overview of Perl 6 Rules: http://www-128.ibm.com/developerworks/linux/library/l-cpregex.html?ca=dgr-lnxw01Perl6Gram&lt;br /&gt;
&lt;br /&gt;
[[User:Eiffel|Roger Browne]] 23:12, 4 Dec 2005 (CET)&lt;/div&gt;</summary>
		<author><name>201.252.190.101</name></author>
	</entry>
	<entry>
		<id>https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=722&amp;oldid=prev</id>
		<title>80.170.7.104 at 13:16, 28 November 2005</title>
		<link rel="alternate" type="text/html" href="https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=722&amp;oldid=prev"/>
		<updated>2005-11-28T13:16:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:16, 28 November 2005&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* The construct (a+)+ can use so much CPU that you believe that it is buggy.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* The construct (a+)+ can use so much CPU that you believe that it is buggy.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* The construct (a(b)?)* applied on aba will give you a group 2 not empty, beginning at 2 and finishing at 2.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* The construct (a(b)?)* applied on aba will give you a group 2 not empty, beginning at 2 and finishing at 2.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;As always, see the tutorial to learn how to use regular expressions.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== The POSIX regular expressions ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== The POSIX regular expressions ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>80.170.7.104</name></author>
	</entry>
	<entry>
		<id>https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=721&amp;oldid=prev</id>
		<title>80.170.7.104 at 13:15, 28 November 2005</title>
		<link rel="alternate" type="text/html" href="https://wiki.liberty-eiffel.org/index.php?title=Lib/regular_expression&amp;diff=721&amp;oldid=prev"/>
		<updated>2005-11-28T13:15:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Regular expressions of SmartEiffel 2.2 ==&lt;br /&gt;
&lt;br /&gt;
Since SmartEiffel 2.2 a cluster is included that allow you to use either POSIX regular expressions or PERL5 regular expressions.&lt;br /&gt;
&lt;br /&gt;
Currently the regular expression cluster makes use of the backtracking cluster. &lt;br /&gt;
&lt;br /&gt;
The main restriction comes from used the character set. The used one is the ASCII character set. UNICODE characters are not supported currently.&lt;br /&gt;
&lt;br /&gt;
An other restriction is that most of the common character escapes are not made: \n is n not new line, \t is t not tab, etc.. The reason is that we supposed that such a preprocessing can be made by users and we had a schizophrenic conflict between %N and \n. Your opinion about that point is very wellcome.&lt;br /&gt;
&lt;br /&gt;
Known problems:&lt;br /&gt;
* The constructs (a?b?)* gives an infinite loop and fills the stack until crash.&lt;br /&gt;
* The construct (a+)+ can use so much CPU that you believe that it is buggy.&lt;br /&gt;
* The construct (a(b)?)* applied on aba will give you a group 2 not empty, beginning at 2 and finishing at 2.&lt;br /&gt;
&lt;br /&gt;
== The POSIX regular expressions ==&lt;br /&gt;
&lt;br /&gt;
The POSIX regular expression are supported except for the [=...=] construct (same class that ...).&lt;br /&gt;
&lt;br /&gt;
See POSIX 1003.2, section 2.8 (Regular Expression Notation). [http://www.unix.org/ www.unix.org]&lt;br /&gt;
&lt;br /&gt;
On LINUX: man 7 regex.&lt;br /&gt;
&lt;br /&gt;
== The PERL 5 regular expressions ==&lt;br /&gt;
&lt;br /&gt;
With the main restriction that UNICODE is not handled, most of the PERL 5 regular expressions is implemented.&lt;br /&gt;
See [http://perldoc.perl.org/perlre.html Perl Regular expressions].&lt;br /&gt;
&lt;br /&gt;
Missing things:&lt;br /&gt;
* The experimental behaviours are not integrated &lt;br /&gt;
* Some construct like [[:] that are well interpreted by perl produce an error. In these cases, you must write [:[].&lt;br /&gt;
&lt;br /&gt;
Added things:&lt;br /&gt;
* The look behind (negative or positive) is not restricted to have a fixed length.&lt;br /&gt;
* The POSIX constructs [:&amp;lt;:] and [:&amp;gt;:] are allowed (it stands for begin and end of words).&lt;br /&gt;
&lt;br /&gt;
== Coming soon? ==&lt;br /&gt;
&lt;br /&gt;
* The shell (bash) file matching (help wanted)&lt;br /&gt;
* The basic regular expression (help wanted)&lt;br /&gt;
* The JAVA regular expressions (help wanted, trick inherit PERL5 builder and make the hungry repetition)&lt;/div&gt;</summary>
		<author><name>80.170.7.104</name></author>
	</entry>
</feed>