Guest1216, let me guess why Proxo syntax was made so different from Perl. I don't think it was made out of lazyness or ignorantness or stupidity, on the contrary!
I think Scott did not use Perl syntax in the first place because it is not well fitted to matching urls and html. What looks best, Proxo syntax:
http://www.yahoo.com/*.jpg or Perl syntax: www\.yahoo\.com/.*\.jpg ?
So Scott would keep dot as a normal character. Needing something for "any char", he chose the Windows wildcard "?". Here, Proxo was a Windows-only app, so he tuned it to the tastes of Windows users. Remember, many of them never heard of Unix or Linux or Perl!
There are so many ".*" in filters (an average of 7 per filter!) that he must have decided to condense it to the single character "*" (again, the Windows wildcard), to make one's life easier. That was a good choice.
Not having "*" for "0+ times", he changed the meaning of "+" from 1+ to 0+. That's because 0+ is much more useful than 1+. Have a look at existing filters, you hardly find a "+{1,". Again, that sounds a good move.
About braces, I understand he imposed the "+", because he created the "++" and one must specify if it is + or ++ that is constrained. Moreover, matching CSS styles or JavaScript blocs is simpler if you don't have to escape braces. I wouldn't have forced the star for "unbounded" though, just "{," or ",}" seemed ok to me. I'll let Proximodo users omit the star.
In html, beginning and end of string are meaningless (crlf is equivalent to space). It is not even useful in urls, since we only match at position 0, and text could be appended to a URL (#anchor for example). So Scott recycled ^ and $ for "not" in expressions (just like in []) and for commands.
For improving performance, he did not let () record data. So the user specifies which parentheses are to be recorded (using "()\0-9").
Scott kept the following notations: () [] [^] | \ \t \r \n \s
But, he didn't keep the following ones, here I don't understand why:
\xhh \b \B \S \d \D
I intend to add them to Proximodo ;-)
To sum up, differences from Perl regexps are justified by user-friendlyness. Scott made so much tweaking for better html matching (think about &, &&, ++, =, [#], (^), \u, \9 and \#, ' and ", \w that excludes >, commands) that, had they been extensions to perl regexp, patterns would nevertheless not look like perl regexp anymore. I think users should consider Proxo syntax as a new language, and forgive Scott for not keeping the meaning of ".*+?". I defy anyone to prove me wrong!