Perl uses internally an engine that's based on NFA. It is possible to change this into a DFA, but that would require you to write a different regexp engine - all perl currently provides is a mechanism to hook in a different regexp engine.

As for optimizing your regexp, I do not know if that's possible. I do not know what the regexp is supposed to do. Sure, I can read the regexp, and I know what it does, but if I change anything about it, it will do something else. Which may still do the task you want it to do, but since you don't tell us, I'm not going to guess.

Tell us, what's the data you are applying it against, and what you want to match?


In reply to Re: Backtracking hurts: slow regexp by JavaFan
in thread Backtracking hurts: slow regexp by faibistes

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.