<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_quote"><div>1) This assumes that all implementations use regex. That may not necessarily be the case. For example, peg markdown is a peg parser. While I&#39;m not sure if it uses a peg grammar or regex for matching urls (I didn&#39;t go check), why should it be required to use a regex?</div>
</div></blockquote><div><br></div><div>We can&#39;t possible enforce regex&#39;s, but for those implementations that use them, such as lex/yacc systems, it couldn&#39;t hurt to publish a thoroughly tested URL regex for the sake of the public.</div>
<div><br></div><div>Parsers still use lexers (e.g. yacc and lex), and those lexers recognize regular expressions, so peg should be able to benefit from this.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_quote">

<div>2) Not all languages (perl, python, ruby, php, lua, ...) use the same regex implementation. For instance, when developing the python implementation of markdown, I have had to work around a few features of the perl regex implementation that do not exist in python. Had JG been working in a language other than perl when he first developed the markdown syntax, I suspect a few things would be different. Some subtle features of the syntax are definitely a direct result of how perl&#39;s regex works. Nothing that can&#39;t be overcome - but not always with regex (see [this][] example).</div>
</div></blockquote><div><br></div><div>True, but there is a rough standard for &quot;Portable Perl-compatible regular expressions&quot;, as in the Common Lisp library cl-ppcre. The basics of regex&#39;s are standard across the board; when the syntax differs, such as for lex, the semantics still carry over.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_quote"><div></div><div>3) Even if the above issues didn&#39;t exist, how would you be able to convince all of the implementors to use it in their implementations?</div>
</div></blockquote><div><br></div><div>Show them how such a regex handles edge cases better, such as the presence of parentheses (original post).</div><div><br></div></div><div></div>Cheers,<div><br></div><div>Andrew Pennebaker</div>
<div><a href="http://www.yellosoft.us" target="_blank">www.yellosoft.us</a></div>