Skip to content

Instantly share code, notes, and snippets.

@jpsim
Last active November 10, 2025 05:12
Show Gist options
  • Select an option

  • Save jpsim/8057500 to your computer and use it in GitHub Desktop.

Select an option

Save jpsim/8057500 to your computer and use it in GitHub Desktop.
  1. Plain Strings (207): foo
  2. Anchors (208): k$
  3. Ranges (202): ^[a-f]*$
  4. Backrefs (201): (...).*\1
  5. Abba (169): ^(.(?!(ll|ss|mm|rr|tt|ff|cc|bb)))*$|^n|ef
  6. A man, a plan (177): ^(.)[^p].*\1$
  7. Prime (286): ^(?!(..+)\1+$)
  8. Four (199): (.)(.\1){3}
  9. Order (198): ^[^o].....?$
  10. Triples (507): (^39|^44)|(^([0369]|([147][0369]*[258])|(([258]|[147][0369]*[147])([0369]*|[258][0369]*[147])([147]|[258][0369]*[258])))*$)
  11. Glob (364): ^((\*(er|f|i|p|t|v))|(b|c(h|o|r)|do|l|mi|p(a|r|u)|re|w))
  12. Balance (286): ^(<(<(<(<(<(<<>>)*>)*>)*>)*>)*>)*$
  13. Powers (56): ^((((((((((x)\10?)\9?)\8?)\7?)\6?)\5?)\4?)\3?)\2?)\1?$

Total Score: 3060

@Davidebyzero

Copy link
Copy Markdown

tweaking 2 of my top 100 candidates has generated these 596 and 595 point solutions for triples:

00(3|6|9|15|$)|.1.+4|.17|[04].2|55
[07][0269]+3?$|0.2|1.4|3.*7.|58|015

Nice work. Makes it look hopeful that you might beat 596.

Here it is compared with the similar published 596 point solution:

00($|3|6|9|15)|[04].2|.1.+4|.17|55
00($|3|6|9|12|15)|4.2|.1.+4|.17|55

And here is your 595 compared with the other published 596:

[07][0269]+3?$|[02-5][123][257]|55
[07][0269]+3?$|0.2|1.4|3.*7.|58|015

@teukon

teukon commented Mar 4, 2014

Copy link
Copy Markdown

Nice. Making progress bbarry.

I hope this computer search does yield a saving in the end. It certainly seems possible.

@Davidebyzero

Copy link
Copy Markdown

Balance (454): .{37}|^(<(..(?!<.>$))*>)*$

Edit: Used to score 294, now 454 with new scoring

@hkdobrev

hkdobrev commented May 7, 2014

Copy link
Copy Markdown

Order (198): ^[^o].{1,5}$

Same points, but a better using shorter negating syntax and numbers instead of multiple dots.

@hkdobrev

hkdobrev commented May 7, 2014

Copy link
Copy Markdown

Triples (543): ^(0+[0369]|0{7}1[25]|06.*|1.*[60]|3[1269].*[478]|32.*|4[04].*|7[14].*|8[17].*|9[05].*)$

@hkdobrev

hkdobrev commented May 7, 2014

Copy link
Copy Markdown

Triples (574): ^(.*[07](6|1[25]|[056][^58])|([349][^378]|[78][147]).*)$

@71104

71104 commented Jun 15, 2014

Copy link
Copy Markdown

Triples (523): ^([0369]|[258][0369]*[147]|([147]|[258][0369]*[258])([0369]|[147][0369]*[258])*([147][0369]*[147]|[258]))*$

(I designed a DFA and converted it using Kleene's algorithm, it's the most correct way to do it although not the one that scores the most)

@ranneyd

ranneyd commented Jul 3, 2014

Copy link
Copy Markdown

Balance (444): ^(<(<(<(<(<(<(<>)>)>)>)>)>)>)$

@71104

71104 commented Jul 11, 2014

Copy link
Copy Markdown

Balance (446): ^(<(<(<(<(<(<.*>)*>)*>)*>)*>)*>)*$

@wapiflapi

Copy link
Copy Markdown

Balance (447): ^(<(<(<(<(<(...)*>)*>)*>)*>)*>)*$

@aeieli

aeieli commented Jan 29, 2015

Copy link
Copy Markdown

Powers 2(82): ^(x{81})+$|^x$|^(x{3}){1,9}$

@welwood08

Copy link
Copy Markdown

Powers 2: ^(.|(...)+)$ (88)

Matches 1 test that it shouldn't, but still the most points I could get within reasonable time. Several ways to get 86pts otherwise.

@wsergent

Copy link
Copy Markdown

Long Count = 256 points: ((.+)0\2+1){8}

@nicklister

Copy link
Copy Markdown

561 on Triples... might need optimized/refined

[0562][04]$|[30]03$|0[4629]$|12$|015$|[48]7$|9005$|7[6825]$|31$|58$

@mlindheimmarx

Copy link
Copy Markdown

glob-- ^(*(er|f|i|p|t|v)|b|c(?!a)|d(?!i)|l|mi|p|re|w)

@Allypost

Allypost commented Jun 6, 2016

Copy link
Copy Markdown

Triples (589): 003|009|0.2|015|00$|06|1.4|4.2|55|.17|819

@ShaunDonle

Copy link
Copy Markdown

Power 2: ^(?!xx$|(x(xxx)+)\1*$)

@leiserfg

Copy link
Copy Markdown

Power 2:^(?!((xxx)+x|xx)\1*$)

@vinodselvin

Copy link
Copy Markdown

It never ends: u\b

@Davidebyzero

Copy link
Copy Markdown

I've updated Best known Regex Golf solutions. The current Classic level set is fully covered. It's now in table format, including full credits and date-time stamps, a history of gradual improvements for most of the levels, and some extra bonus information.

I have intentionally not updated the Teukon level set solutions compilation, nor posted one for Holiday, as with the release of functioning high score lists in the newly brought back Regex Golf site, to do so would further taint the high scores with people who simply Google it and copy the solutions. This is not an ideal situation by any means, as I'd really like for everyone to be able to benefit from this knowledge if they so desire, but given the way the on-site high score lists currently function, I see no alternative. Having date-time stamps in the on-site high score lists would be a good start towards fixing this problem.

@moon-home

Copy link
Copy Markdown

Abba (193): ^(?!.*(.)(.)\2\1)

Hi @jonathanmorley, can you enlighten me why (?!(.)(.)\2\1) matches abba? isn't it matching any string that does not have a 4 characters palindrome?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment