{"id":"https://openalex.org/W4390604686","doi":"https://doi.org/10.1145/3632934","title":"Efficient Matching of Regular Expressions with Lookaround Assertions","display_name":"Efficient Matching of Regular Expressions with Lookaround Assertions","publication_year":2024,"publication_date":"2024-01-02","ids":{"openalex":"https://openalex.org/W4390604686","doi":"https://doi.org/10.1145/3632934"},"language":"en","primary_location":{"id":"doi:10.1145/3632934","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3632934","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3632934","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3632934","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5052392314","display_name":"Konstantinos Mamouras","orcid":"https://orcid.org/0000-0003-1209-7738"},"institutions":[{"id":"https://openalex.org/I74775410","display_name":"Rice University","ror":"https://ror.org/008zs3103","country_code":"US","type":"education","lineage":["https://openalex.org/I74775410"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Konstantinos Mamouras","raw_affiliation_strings":["Rice University, Houston, USA"],"raw_orcid":"https://orcid.org/0000-0003-1209-7738","affiliations":[{"raw_affiliation_string":"Rice University, Houston, USA","institution_ids":["https://openalex.org/I74775410"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5050116529","display_name":"Agnishom Chattopadhyay","orcid":"https://orcid.org/0009-0007-0462-8080"},"institutions":[{"id":"https://openalex.org/I74775410","display_name":"Rice University","ror":"https://ror.org/008zs3103","country_code":"US","type":"education","lineage":["https://openalex.org/I74775410"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Agnishom Chattopadhyay","raw_affiliation_strings":["Rice University, Houston, USA"],"raw_orcid":"https://orcid.org/0009-0007-0462-8080","affiliations":[{"raw_affiliation_string":"Rice University, Houston, USA","institution_ids":["https://openalex.org/I74775410"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I74775410"],"apc_list":null,"apc_paid":null,"fwci":4.1826,"has_fulltext":true,"cited_by_count":18,"citation_normalized_percentile":{"value":0.94338338,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":98,"max":99},"biblio":{"volume":"8","issue":"POPL","first_page":"2761","last_page":"2791"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9986000061035156,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9986000061035156,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11567","display_name":"semigroups and automata theory","score":0.9975000023841858,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T12326","display_name":"Network Packet Processing and Optimization","score":0.9959999918937683,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/regular-expression","display_name":"Regular expression","score":0.8493273258209229},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7689248323440552},{"id":"https://openalex.org/keywords/backtracking","display_name":"Backtracking","score":0.6956830024719238},{"id":"https://openalex.org/keywords/nondeterministic-algorithm","display_name":"Nondeterministic algorithm","score":0.5993852615356445},{"id":"https://openalex.org/keywords/oracle","display_name":"Oracle","score":0.5884806513786316},{"id":"https://openalex.org/keywords/nondeterministic-finite-automaton","display_name":"Nondeterministic finite automaton","score":0.5758316516876221},{"id":"https://openalex.org/keywords/pattern-matching","display_name":"Pattern matching","score":0.5144922733306885},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.49298951029777527},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.4802998900413513},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.4537437856197357},{"id":"https://openalex.org/keywords/finite-state-machine","display_name":"Finite-state machine","score":0.4368317723274231},{"id":"https://openalex.org/keywords/context","display_name":"Context (archaeology)","score":0.42310789227485657},{"id":"https://openalex.org/keywords/automaton","display_name":"Automaton","score":0.392791211605072},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.33940863609313965},{"id":"https://openalex.org/keywords/automata-theory","display_name":"Automata theory","score":0.23747196793556213}],"concepts":[{"id":"https://openalex.org/C121329065","wikidata":"https://www.wikidata.org/wiki/Q185612","display_name":"Regular expression","level":2,"score":0.8493273258209229},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7689248323440552},{"id":"https://openalex.org/C156884757","wikidata":"https://www.wikidata.org/wiki/Q798554","display_name":"Backtracking","level":2,"score":0.6956830024719238},{"id":"https://openalex.org/C176181172","wikidata":"https://www.wikidata.org/wiki/Q3490301","display_name":"Nondeterministic algorithm","level":2,"score":0.5993852615356445},{"id":"https://openalex.org/C55166926","wikidata":"https://www.wikidata.org/wiki/Q2892946","display_name":"Oracle","level":2,"score":0.5884806513786316},{"id":"https://openalex.org/C158008952","wikidata":"https://www.wikidata.org/wiki/Q617295","display_name":"Nondeterministic finite automaton","level":4,"score":0.5758316516876221},{"id":"https://openalex.org/C68859911","wikidata":"https://www.wikidata.org/wiki/Q1503724","display_name":"Pattern matching","level":2,"score":0.5144922733306885},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.49298951029777527},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.4802998900413513},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.4537437856197357},{"id":"https://openalex.org/C167822520","wikidata":"https://www.wikidata.org/wiki/Q176452","display_name":"Finite-state machine","level":2,"score":0.4368317723274231},{"id":"https://openalex.org/C2779343474","wikidata":"https://www.wikidata.org/wiki/Q3109175","display_name":"Context (archaeology)","level":2,"score":0.42310789227485657},{"id":"https://openalex.org/C112505250","wikidata":"https://www.wikidata.org/wiki/Q787116","display_name":"Automaton","level":2,"score":0.392791211605072},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.33940863609313965},{"id":"https://openalex.org/C116248031","wikidata":"https://www.wikidata.org/wiki/Q214526","display_name":"Automata theory","level":3,"score":0.23747196793556213},{"id":"https://openalex.org/C151730666","wikidata":"https://www.wikidata.org/wiki/Q7205","display_name":"Paleontology","level":1,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3632934","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3632934","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3632934","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3632934","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3632934","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3632934","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[{"score":0.4300000071525574,"display_name":"Peace, Justice and strong institutions","id":"https://metadata.un.org/sdg/16"}],"awards":[{"id":"https://openalex.org/G6214416324","display_name":"SHF: Small: Programming Foundations for Real-Time Data Analysis","funder_award_id":"2008096","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4390604686.pdf","grobid_xml":"https://content.openalex.org/works/W4390604686.grobid-xml"},"referenced_works_count":51,"referenced_works":["https://openalex.org/W33792228","https://openalex.org/W49365094","https://openalex.org/W66182865","https://openalex.org/W69247107","https://openalex.org/W95934751","https://openalex.org/W189973795","https://openalex.org/W1139689124","https://openalex.org/W1494737186","https://openalex.org/W1523321977","https://openalex.org/W1570445666","https://openalex.org/W1574255194","https://openalex.org/W1809667786","https://openalex.org/W1820500785","https://openalex.org/W1998368317","https://openalex.org/W2007130296","https://openalex.org/W2018045485","https://openalex.org/W2030102079","https://openalex.org/W2031188261","https://openalex.org/W2031830821","https://openalex.org/W2050442756","https://openalex.org/W2054801208","https://openalex.org/W2072607050","https://openalex.org/W2075994573","https://openalex.org/W2094985106","https://openalex.org/W2099964107","https://openalex.org/W2111194889","https://openalex.org/W2147817491","https://openalex.org/W2156429182","https://openalex.org/W2163152086","https://openalex.org/W2235749104","https://openalex.org/W2293046879","https://openalex.org/W2293231120","https://openalex.org/W2295673914","https://openalex.org/W2613020787","https://openalex.org/W2785700716","https://openalex.org/W2951386665","https://openalex.org/W3048708344","https://openalex.org/W3090131141","https://openalex.org/W3092534483","https://openalex.org/W3130625959","https://openalex.org/W3137814233","https://openalex.org/W3146438627","https://openalex.org/W3148826620","https://openalex.org/W3157903927","https://openalex.org/W3202468961","https://openalex.org/W4206544982","https://openalex.org/W4281667938","https://openalex.org/W4362677176","https://openalex.org/W4379518504","https://openalex.org/W4387377406","https://openalex.org/W6891610616"],"related_works":["https://openalex.org/W1992338022","https://openalex.org/W4249650827","https://openalex.org/W2090734721","https://openalex.org/W2089404966","https://openalex.org/W3094387502","https://openalex.org/W2115419634","https://openalex.org/W3143588635","https://openalex.org/W2089302579","https://openalex.org/W1990473086","https://openalex.org/W1644613146"],"abstract_inverted_index":{"Regular":[0],"expressions":[1,112],"have":[2],"been":[3],"extended":[4],"with":[5,113,174],"lookaround":[6,42,82,101,114,147,188,234],"assertions,":[7],"which":[8,46,74,166,227],"are":[9,18,172,177,228],"subdivided":[10],"into":[11],"lookahead":[12],"and":[13,133,213,223,245,256],"lookbehind":[14],"assertions.":[15,102,235],"These":[16,170],"constructs":[17],"used":[19,78],"to":[20,50,94,243],"refine":[21],"when":[22],"a":[23,26,68,86,106,150,158],"match":[24],"for":[25,41,72,99,109,208],"pattern":[27],"occurs":[28],"in":[29,56,83,149,193,241],"the":[30,35,57,76,127,130,136,139,184,194,210],"input":[31,60,140],"text":[32],"based":[33],"on":[34],"surrounding":[36],"context.":[37],"Current":[38],"implementation":[39,199,248],"techniques":[40],"involve":[43],"backtracking":[44,87],"search,":[45],"can":[47],"give":[48],"rise":[49],"running":[51,254],"time":[52,117,255],"that":[53,115,176,182,203,232],"is":[54,126,135,257],"super-linear":[55,253],"length":[58,137],"of":[59,81,85,129,138,157,161,187,200],"text.":[61,141,195],"In":[62],"this":[63],"paper,":[64],"we":[65,104,167],"first":[66],"consider":[67],"formal":[69,90],"mathematical":[70],"semantics":[71,91],"lookaround,":[73],"complements":[75],"commonly":[77],"operational":[79],"understanding":[80],"terms":[84],"implementation.":[88],"Our":[89,153,236],"allows":[92],"us":[93],"establish":[95],"several":[96,258],"equational":[97],"properties":[98],"simplifying":[100],"Additionally,":[103],"propose":[105],"new":[107,159],"algorithm":[108,143,154,202],"matching":[110],"regular":[111,131],"has":[116],"complexity":[118],"O":[119],"m":[120,125],"\u22c5":[121],"n":[122,134],",":[123],"where":[124],"size":[128],"expression":[132],"The":[142],"works":[144],"by":[145,179],"evaluating":[146],"assertions":[148,189],"bottom-up":[151],"manner.":[152],"makes":[155],"use":[156],"notion":[160],"nondeterministic":[162],"finite":[163],"automata":[164,171],"(NFAs),":[165],"call":[168],"oracle-NFAs.":[169],"augmented":[173],"epsilon-transitions":[175],"guarded":[178],"oracle":[180],"queries":[181],"provide":[183,197],"truth":[185],"values":[186],"at":[190],"every":[191],"position":[192],"We":[196,216],"an":[198,218],"our":[201,247],"incorporates":[204],"three":[205],"performance":[206],"optimizations":[207],"reducing":[209],"work":[211],"performed":[212],"memory":[214],"used.":[215],"present":[217],"experimental":[219,237],"comparison":[220],"against":[221],"PCRE":[222,244],"Java\u2019s":[224],"regex":[225,230],"library,":[226],"state-of-the-art":[229],"engines":[231],"support":[233],"results":[238],"show":[239],"that,":[240],"contrast":[242],"Java,":[246],"does":[249],"not":[250],"suffer":[251],"from":[252],"times":[259],"faster.":[260]},"counts_by_year":[{"year":2026,"cited_by_count":4},{"year":2025,"cited_by_count":7},{"year":2024,"cited_by_count":7}],"updated_date":"2026-08-21T09:56:20.448147","created_date":"2025-10-10T00:00:00"}
