{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,7]],"date-time":"2026-07-07T03:03:20Z","timestamp":1783393400144,"version":"3.54.6"},"reference-count":111,"publisher":"Springer Science and Business Media LLC","issue":"1","license":[{"start":{"date-parts":[[2021,11,5]],"date-time":"2021-11-05T00:00:00Z","timestamp":1636070400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"},{"start":{"date-parts":[[2021,11,5]],"date-time":"2021-11-05T00:00:00Z","timestamp":1636070400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["1714699"],"award-info":[{"award-number":["1714699"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Empir Software Eng"],"published-print":{"date-parts":[[2022,1]]},"DOI":"10.1007\/s10664-021-10033-1","type":"journal-article","created":{"date-parts":[[2021,11,5]],"date-time":"2021-11-05T05:02:28Z","timestamp":1636088548000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":7,"title":["Demystifying regular expression bugs"],"prefix":"10.1007","volume":"27","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-6179-9790","authenticated-orcid":false,"given":"Peipei","family":"Wang","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Chris","family":"Brown","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Jamie A.","family":"Jennings","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Kathryn T.","family":"Stolee","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2021,11,5]]},"reference":[{"key":"10033_CR1","doi-asserted-by":"crossref","unstructured":"Amann S, Nadi S, Nguyen HA, Nguyen TN, Mezini M (2016) Mubench: A benchmark for api-misuse detectors. In: Proceedings of the 13th international conference on mining software repositories, pp. 464\u2013467","DOI":"10.1145\/2901739.2903506"},{"issue":"12","key":"10033_CR2","doi-asserted-by":"publisher","first-page":"1170","DOI":"10.1109\/TSE.2018.2827384","volume":"45","author":"S Amann","year":"2018","unstructured":"Amann S, Nguyen HA, Nadi S, Nguyen TN, Mezini M (2018) A systematic evaluation of static api-misuse detectors. IEEE Trans Softw Eng 45(12):1170\u20131188","journal-title":"IEEE Trans Softw Eng"},{"key":"10033_CR3","unstructured":"Apache software foundation (2020) https:\/\/github.com\/apache"},{"key":"10033_CR4","doi-asserted-by":"crossref","unstructured":"Bae S, Cho H, Lim I, Ryu S (2014) Safewapi: Web api misuse detector for web applications. In: Proceedings of the 22nd ACM SIGSOFT international symposium on foundations of software engineering. pp 507\u2013517","DOI":"10.1145\/2635868.2635916"},{"key":"10033_CR5","doi-asserted-by":"crossref","unstructured":"Bai GR, Clee B, Shrestha N, Chapman C, Wright C, Stolee KT (2019) Exploring tools and strategies used during regular expression composition tasks. In: Proceedings of the 27th international conference on program comprehension. IEEE Press, pp 197\u2013208","DOI":"10.1109\/ICPC.2019.00039"},{"issue":"5","key":"10033_CR6","doi-asserted-by":"publisher","first-page":"1217","DOI":"10.1109\/TKDE.2016.2515587","volume":"28","author":"A Bartoli","year":"2016","unstructured":"Bartoli A, De Lorenzo A, Medvet E, Tarlao F (2016) Inference of regular expressions for text extraction from examples. IEEE Trans Knowl Data Eng 28(5):1217\u20131230. https:\/\/doi.org\/10.1109\/TKDE.2016.2515587","journal-title":"IEEE Trans Knowl Data Eng"},{"key":"10033_CR7","doi-asserted-by":"crossref","unstructured":"Beller M, Gousios G, Zaidman A (2017) Oops, my tests broke the build: An explorative analysis of travis ci with github. In: 2017 IEEE\/ACM 14th international conference on mining software repositories (MSR). IEEE, pp 356\u2013367","DOI":"10.1109\/MSR.2017.62"},{"key":"10033_CR8","unstructured":"Brown WH, Malveau RC, McCormick HW, Mowbray TJ (1998) AntiPatterns: refactoring software, architectures, and projects in crisis"},{"key":"10033_CR9","doi-asserted-by":"crossref","unstructured":"Chapman C, Stolee KT (2016) Exploring regular expression usage and context in python. In: Proceedings of the 25th international symposium on software testing and analysis. ACM, pp 282\u2013293","DOI":"10.1145\/2931037.2931073"},{"key":"10033_CR10","doi-asserted-by":"crossref","unstructured":"Chapman C, Wang P, Stolee KT (2017) Exploring regular expression comprehension. In: Proceedings of the 32nd IEEE\/ACM international conference on automated software engineering. IEEE Press, pp 405\u2013416","DOI":"10.1109\/ASE.2017.8115653"},{"key":"10033_CR11","doi-asserted-by":"crossref","unstructured":"Chen Q, Wang X, Ye X, Durrett G, Dillig I (2020) Multi-modal synthesis of regular expressions. In: Proceedings of the 41st ACM SIGPLAN conference on programming language design and implementation. pp 487\u2013502","DOI":"10.1145\/3385412.3385988"},{"key":"10033_CR12","doi-asserted-by":"crossref","unstructured":"Cody-Kenny B, Fenton M, Ronayne A, Considine E, McGuire T, O\u2019Neill M (2017) A search for improved performance in regular expressions. In: Proceedings of the genetic and evolutionary computation conference. ACM, pp 1280\u20131287","DOI":"10.1145\/3071178.3071196"},{"key":"10033_CR13","doi-asserted-by":"crossref","unstructured":"Coelho R, Almeida L, Gousios G, van Deursen A (2015) Unveiling exception handling bug hazards in android based on github and google code issues. In: 2015 IEEE\/ACM 12th working conference on mining software repositories. IEEE, pp 134\u2013145","DOI":"10.1109\/MSR.2015.20"},{"key":"10033_CR14","unstructured":"google\/guava - how to contribute (2020) https:\/\/github.com\/google\/guava\/blob\/master\/CONTRIBUTING.md"},{"key":"10033_CR15","unstructured":"apache\/airflow \u2013 contribution workflow (2021). https:\/\/github.com\/apache\/airflow\/blob\/main\/CONTRIBUTING.rst"},{"key":"10033_CR16","unstructured":"How to contribute \u2013 react (2021). https:\/\/reactjs.org\/docs\/how-to-contribute.html"},{"key":"10033_CR17","doi-asserted-by":"publisher","unstructured":"Dataset for comprehensive study of regular expression bugs (2020) https:\/\/figshare.com\/articles\/dataset\/A_Dataset_for_Comprehensive_Study_of_Regular_Expression_Bugs\/13234538. https:\/\/doi.org\/10.6084\/m9.figshare.13234538.v1","DOI":"10.6084\/m9.figshare.13234538.v1"},{"key":"10033_CR18","doi-asserted-by":"crossref","unstructured":"Davis JC, Coghlan CA, Servant F, Lee D (2018) The impact of regular expression denial of service (ReDoS) in practice: an empirical study at the ecosystem scale. In: The ACM joint European software engineering conference and symposium on the foundations of software engineering (ESEC\/FSE)","DOI":"10.1145\/3236024.3236027"},{"key":"10033_CR19","doi-asserted-by":"crossref","unstructured":"Davis JC, Michael IV, Louis G, Coghlan CA, Servant F (2019) Why aren\u2019t regular expressions a lingua franca? an empirical study on the re-use and portability of regular expressions. In: Proceedings of the 2019 27th ACM joint meeting on european software engineering conference and symposium on the foundations of software engineering. ACM, pp 443\u2013454","DOI":"10.1145\/3338906.3338909"},{"key":"10033_CR20","doi-asserted-by":"crossref","unstructured":"Davis JC, Moyer D, Kazerouni AM, Lee D (2019) Testing regex generalizability and its implications: A large-scale many-language measurement study. In: 2019 34th IEEE\/ACM international conference on automated software engineering (ASE). IEEE, pp 427\u2013439","DOI":"10.1109\/ASE.2019.00048"},{"key":"10033_CR21","doi-asserted-by":"crossref","unstructured":"Davis JC, Servant F, Lee D (2021) Using selective memoization to defeat regular expression denial of service (redos). In: 2021 IEEE symposium on security and privacy (SP)","DOI":"10.1109\/SP40001.2021.00032"},{"key":"10033_CR22","doi-asserted-by":"crossref","unstructured":"Di Franco A, Guo H, Rubio-Gonz\u00e1lez C (2017) A comprehensive study of real-world numerical bug characteristics. In: Proceedings of the 32nd IEEE\/ACM international conference on automated software engineering. IEEE Press, pp 509\u2013519","DOI":"10.1109\/ASE.2017.8115662"},{"issue":"2","key":"10033_CR23","doi-asserted-by":"publisher","first-page":"83","DOI":"10.1002\/smr.328","volume":"18","author":"D Dig","year":"2006","unstructured":"Dig D, Johnson R (2006) How do apis evolve? a story of refactoring. J Softw Maint Evol Res Pract 18(2):83\u2013107","journal-title":"J Softw Maint Evol Res Pract"},{"key":"10033_CR24","doi-asserted-by":"crossref","unstructured":"Eghbali A, Pradel M (2020) No strings attached: An empirical study of string-related software bugs. In: 2020 35th IEEE\/ACM international conference on automated software engineering (ASE). IEEE, pp 956\u2013967","DOI":"10.1145\/3324884.3416576"},{"key":"10033_CR25","unstructured":"Facebook (2020) https:\/\/github.com\/facebook"},{"key":"10033_CR26","volume-title":"Refactoring: improving the design of existing code","author":"M Fowler","year":"2018","unstructured":"Fowler M (2018) Refactoring: improving the design of existing code. Addison-Wesley Professional, Boston"},{"key":"10033_CR27","unstructured":"Githut - programming languages and github (2014) https:\/\/githut.info\/"},{"key":"10033_CR28","unstructured":"Google (2020) https:\/\/github.com\/google"},{"key":"10033_CR29","doi-asserted-by":"crossref","unstructured":"Gousios G, Pinzger M, Deursen AV (2014) An exploratory study of the pull-based software development model. In: Proceedings of the 36th international conference on software engineering. ACM, pp 345\u2013355","DOI":"10.1145\/2568225.2568260"},{"key":"10033_CR30","doi-asserted-by":"crossref","unstructured":"Gousios G, Zaidman A (2014) A dataset for pull-based development research. In: Proceedings of the 11th working conference on mining software repositories. ACM, pp 368\u2013371","DOI":"10.1145\/2597073.2597122"},{"key":"10033_CR31","unstructured":"Github graphql api v4 2019 (2020) https:\/\/developer.github.com\/v4\/"},{"key":"10033_CR32","doi-asserted-by":"crossref","unstructured":"Gu Z, Wu J, Liu J, Zhou M, Gu M (2019) An empirical study on api-misuse bugs in open-source c programs. In: 2019 IEEE 43rd annual computer software and applications conference (COMPSAC), vol 1. IEEE, pp 11\u201320","DOI":"10.1109\/COMPSAC.2019.00012"},{"key":"10033_CR33","doi-asserted-by":"crossref","unstructured":"Gyimesi P, Vancsics B, Stocco A, Mazinanian D, Besz\u00e9des A., Ferenc R, Mesbah A (2019) Bugsjs: a benchmark of javascript bugs. In: 2019 12th IEEE conference on software testing, validation and verification (ICST). IEEE, pp 90\u2013101","DOI":"10.1109\/ICST.2019.00019"},{"key":"10033_CR34","doi-asserted-by":"crossref","unstructured":"Herzig K, Just S, Zeller A (2013) It\u2019s not a bug, it\u2019s a feature: how misclassification impacts bug prediction. In: Proceedings of the 2013 international conference on software engineering. IEEE Press, pp 392\u2013401","DOI":"10.1109\/ICSE.2013.6606585"},{"key":"10033_CR35","unstructured":"Google java style guide (2021) https:\/\/google.github.io\/styleguide\/javaguide.html"},{"key":"10033_CR36","unstructured":"unit testing - what is the convention for javascript test files? - stack overflow (2021) https:\/\/stackoverflow.com\/questions\/49632743\/what-is-the-convention-for-javascript-test-files"},{"key":"10033_CR37","doi-asserted-by":"crossref","unstructured":"Just R, Jalali D, Ernst MD (2014) Defects4j: A database of existing faults to enable controlled testing studies for java programs. In: Proceedings of the 2014 international symposium on software testing and analysis, pp. 437\u2013440","DOI":"10.1145\/2610384.2628055"},{"key":"10033_CR38","doi-asserted-by":"crossref","unstructured":"Kabinna S, Bezemer CP, Shang W, Hassan AE (2016) Logging library migrations: A case study for the apache software foundation projects. In: 2016 IEEE\/ACM 13th working conference on mining software repositories (MSR). IEEE, pp 154\u2013164","DOI":"10.1145\/2901739.2901769"},{"key":"10033_CR39","doi-asserted-by":"crossref","unstructured":"Kalliamvakou E, Gousios G, Blincoe K, Singer L, German DM, Damian D (2014) The promises and perils of mining github. In: Proceedings of the 11th working conference on mining software repositories. pp. 92\u2013101","DOI":"10.1145\/2597073.2597074"},{"key":"10033_CR40","doi-asserted-by":"crossref","unstructured":"Kapur P, Cossette B, Walker RJ (2010) Refactoring references for library migration. In: Proceedings of the ACM international conference on Object oriented programming systems languages and applications. pp. 726\u2013738","DOI":"10.1145\/1932682.1869518"},{"key":"10033_CR41","doi-asserted-by":"crossref","unstructured":"Kechagia M, Devroey X, Panichella A, Gousios G, van Deursen A (2019) Effective and efficient api misuse detection via exception propagation and search-based testing. In: Proceedings of the 28th ACM SIGSOFT international symposium on software testing and analysis. pp 192\u2013203","DOI":"10.1145\/3293882.3330552"},{"key":"10033_CR42","doi-asserted-by":"crossref","unstructured":"Khomh F, Di Penta M, Gueheneuc YG (2009) An exploratory study of the impact of code smells on software change-proneness. In: 2009 16th working conference on reverse engineering. IEEE, pp 75\u201384","DOI":"10.1109\/WCRE.2009.28"},{"key":"10033_CR43","doi-asserted-by":"crossref","unstructured":"Kim M, Cai D, Kim S (2011) An empirical investigation into the role of api-level refactorings during software evolution. In: Proceedings of the 33rd international conference on software engineering. pp 151\u2013160","DOI":"10.1145\/1985793.1985815"},{"key":"10033_CR44","doi-asserted-by":"crossref","unstructured":"Ko D, Ma K, Park S, Kim S, Kim D, Le Traon Y (2014) Api document quality for resolving deprecated apis. In: 2014 21st Asia-Pacific software engineering conference, vol 2. IEEE, pp 27\u201330","DOI":"10.1109\/APSEC.2014.87"},{"key":"10033_CR45","doi-asserted-by":"crossref","unstructured":"Kochhar PS, Bissyand\u00e9 T. F., Lo D, Jiang L (2013) Adoption of software testing in open source projects\u2013a preliminary study on 50,000 projects. In: 2013 17th european conference on software maintenance and reengineering. IEEE, pp 353\u2013356","DOI":"10.1109\/CSMR.2013.48"},{"key":"10033_CR46","doi-asserted-by":"crossref","unstructured":"Larson E, Kirk A (2016) Generating evil test strings for regular expressions. In: 2016 IEEE international conference on software testing, verification and validation (ICST). IEEE, pp 309\u2013319","DOI":"10.1109\/ICST.2016.29"},{"key":"10033_CR47","doi-asserted-by":"crossref","unstructured":"Locascio N, Narasimhan K, DeLeon E, Kushman N, Barzilay R (2016) Neural generation of regular expressions from natural language with minimal domain knowledge. arXiv:1608.03000","DOI":"10.18653\/v1\/D16-1197"},{"key":"10033_CR48","doi-asserted-by":"publisher","unstructured":"Lou Y, Chen Z, Cao Y, Hao D, Zhang L (2020) Understanding build issue resolution in practice: Symptoms and fix patterns. In: Proceedings of the 28th ACM joint meeting on european software engineering conference and symposium on the foundations of software engineering, ESEC\/FSE 2020. Association for Computing Machinery, New York, pp 617\u2013628. https:\/\/doi.org\/10.1145\/3368089.3409760","DOI":"10.1145\/3368089.3409760"},{"key":"10033_CR49","doi-asserted-by":"crossref","unstructured":"Lu J, Chen L, Li L, Feng X (2019) Understanding node change bugs for distributed systems. In: 2019 IEEE 26th international conference on software analysis, evolution and reengineering (SANER). IEEE, pp 399\u2013410","DOI":"10.1109\/SANER.2019.8668027"},{"key":"10033_CR50","doi-asserted-by":"crossref","unstructured":"Lu S, Park S, Seo E, Zhou Y (2008) Learning from mistakes: a comprehensive study on real world concurrency bug characteristics. In: Proceedings of the 13th international conference on Architectural support for programming languages and operating systems. pp 329\u2013339","DOI":"10.1145\/1346281.1346323"},{"key":"10033_CR51","doi-asserted-by":"crossref","unstructured":"Ma W, Chen L, Zhang X, Zhou Y, Xu B (2017) How do developers fix cross-project correlated bugs? a case study on the github scientific python ecosystem. In: 2017 IEEE\/ACM 39th international conference on software engineering (ICSE). IEEE, pp 381\u2013392","DOI":"10.1109\/ICSE.2017.42"},{"key":"10033_CR52","doi-asserted-by":"crossref","unstructured":"Maalej W, Nabil H (2015) Bug report, feature request, or simply praise? on automatically classifying app reviews. In: 2015 IEEE 23rd international requirements engineering conference (RE). IEEE, pp 116\u2013125","DOI":"10.1109\/RE.2015.7320414"},{"key":"10033_CR53","doi-asserted-by":"crossref","unstructured":"Madeiral F, Urli S, Maia M, Monperrus M (2019) Bears: An extensible java bug benchmark for automatic program repair studies. In: 2019 IEEE 26th international conference on software analysis, evolution and reengineering (SANER). IEEE, pp 468\u2013478","DOI":"10.1109\/SANER.2019.8667991"},{"key":"10033_CR54","unstructured":"Majumder S, Chakraborty J, Agrawal A, Menzies T (2019) Why software projects need heroes (lessons learned from 1100+ projects). arXiv:1904.09954"},{"key":"10033_CR55","unstructured":"Mann-Whitney-Wilcoxon Test | R Tutorial (2020) http:\/\/www.r-tutor.com\/elementary-statistics\/non-parametric-methods\/mann-whitney-wilcoxon-test"},{"key":"10033_CR56","doi-asserted-by":"crossref","unstructured":"Marsavina C, Romano D, Zaidman A (2014) Studying fine-grained co-evolution patterns of production and test code. In: 2014 IEEE 14th international working conference on source code analysis and manipulation. IEEE, pp 195\u2013204","DOI":"10.1109\/SCAM.2014.28"},{"key":"10033_CR57","doi-asserted-by":"crossref","unstructured":"Michael LG, Donohue J, Davis JC, Lee D, Servant F (2019) Regexes are hard: Decision-making, difficulties, and risks in programming regular expressions. In: ACM international conference on automated software engineering (ASE). ACM","DOI":"10.1109\/ASE.2019.00047"},{"key":"10033_CR58","doi-asserted-by":"crossref","unstructured":"Mileva YM, Dallmeier V, Burger M, Zeller A (2009) Mining trends of library usage. In: Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops. pp 57\u201362","DOI":"10.1145\/1595808.1595821"},{"key":"10033_CR59","doi-asserted-by":"crossref","unstructured":"Mileva YM, Dallmeier V, Zeller A (2010) Mining api popularity. In: International academic and industrial conference on practice and research techniques. Springer, pp 173\u2013180","DOI":"10.1007\/978-3-642-15585-7_17"},{"issue":"1","key":"10033_CR60","doi-asserted-by":"publisher","first-page":"20","DOI":"10.1109\/TSE.2009.50","volume":"36","author":"N Moha","year":"2009","unstructured":"Moha N, Gueheneuc YG, Duchien L, Le Meur AF (2009) Decor: A method for the specification and detection of code and design smells. IEEE Trans Softw Eng 36(1):20\u201336","journal-title":"IEEE Trans Softw Eng"},{"key":"10033_CR61","unstructured":"M\u00f8ller A (2017) dk.brics.automaton \u2013 finite-state automata and regular expressions for Java. http:\/\/www.brics.dk\/automaton\/"},{"key":"10033_CR62","unstructured":"Mozilla (2020) https:\/\/github.com\/mozilla"},{"issue":"6","key":"10033_CR63","doi-asserted-by":"publisher","first-page":"3219","DOI":"10.1007\/s10664-017-9512-6","volume":"22","author":"N Munaiah","year":"2017","unstructured":"Munaiah N, Kroh S, Cabrey C, Nagappan M (2017) Curating github for engineered software projects. Empir Softw Eng 22(6):3219\u20133253","journal-title":"Empir Softw Eng"},{"key":"10033_CR64","doi-asserted-by":"crossref","unstructured":"Ohira M, Yoshiyuki H, Yamatani Y (2016) A case study on the misclassification of software performance issues in an issue tracking system. In: 2016 IEEE\/ACIS 15th international conference on computer and information science (ICIS). IEEE, pp 1\u20136","DOI":"10.1109\/ICIS.2016.7550866"},{"key":"10033_CR65","doi-asserted-by":"crossref","unstructured":"Palomba F, Bavota G, Di Penta M, Oliveto R, De Lucia A, Poshyvanyk D (2013) Detecting bad smells in source code using change history information. In: Proceedings of the 28th IEEE\/ACM international conference on automated software engineering. IEEE Press, pp 268\u2013278","DOI":"10.1109\/ASE.2013.6693086"},{"key":"10033_CR66","doi-asserted-by":"crossref","unstructured":"Park JU, Ko SK, Cognetta M, Han YS (2019) Softregex: Generating regex from natural language descriptions using softened regex equivalence. In: Proceedings of the 2019 conference on empirical methods in natural language processing and the 9th international joint conference on natural language processing (EMNLP-IJCNLP). pp 6426\u20136432","DOI":"10.18653\/v1\/D19-1677"},{"key":"10033_CR67","unstructured":"Pearson\u2019s moment coefficient of skewness | a blog on probability and statistics (2015) https:\/\/probabilityandstats.wordpress.com\/tag\/pearsons-moment-coefficient-of-skewness\/"},{"key":"10033_CR68","doi-asserted-by":"crossref","unstructured":"Perkins JH (2005) Automatically generating refactorings to support api evolution. In: Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on program analysis for software tools and engineering. pp 111\u2013114","DOI":"10.1145\/1108792.1108818"},{"key":"10033_CR69","doi-asserted-by":"crossref","unstructured":"Pham R, Singer L, Liskin O, Figueira Filho F, Schneider K (2013) Creating a shared understanding of testing culture on a social coding site. In: 2013 35th international conference on software engineering (ICSE). IEEE, pp 112\u2013121","DOI":"10.1109\/ICSE.2013.6606557"},{"key":"10033_CR70","doi-asserted-by":"crossref","unstructured":"Pingclasai N, Hata H, Matsumoto KI (2013) Classifying bug reports to bugs and other requests using topic modeling. In: 2013 20Th asia-pacific software engineering conference (APSEC), vol 2. IEEE, pp 13\u201318","DOI":"10.1109\/APSEC.2013.105"},{"key":"10033_CR71","doi-asserted-by":"crossref","unstructured":"Pinto LS, Sinha S, Orso A (2012) Understanding myths and realities of test-suite evolution. In: Proceedings of the ACM SIGSOFT 20th international symposium on the foundations of software engineering, pp. 1\u201311","DOI":"10.1145\/2393596.2393634"},{"key":"10033_CR72","unstructured":"Pygithub - pygithub 1.45 documentation (2020) https:\/\/pygithub.readthedocs.io\/en\/latest\/"},{"key":"10033_CR73","unstructured":"pytest - naming conventions and test discovery (2015) https:\/\/docs.pytest.org\/en\/reorganize-docs\/new-docs\/user\/naming_conventions.html"},{"key":"10033_CR74","unstructured":"Regex use vs. regex abuse (2005) https:\/\/blog.codinghorror.com\/regex-use-vs-regex-abuse"},{"key":"10033_CR75","unstructured":"Stack overflow (2021) c# - \u2216 d less efficient than [0-9] - stack overflow. https:\/\/stackoverflow.com\/questions\/16621738\/d-less-efficient-than-0-9"},{"key":"10033_CR76","unstructured":"Perl-compatible regular expression optimizer (2021) https:\/\/bisqwit.iki.fi\/source\/regexopt.html"},{"key":"10033_CR77","unstructured":"regexp-tree - npm (2021) https:\/\/www.npmjs.com\/package\/regexp-tree"},{"key":"10033_CR78","unstructured":"Replacing a complex regular expression with a simple parser (2017) https:\/\/www.honeybadger.io\/blog\/replacing-regular-expressions-with-parsers\/"},{"key":"10033_CR79","doi-asserted-by":"crossref","unstructured":"Rahman MM, Roy CK (2014) An insight into the pull requests of github. In: Proc. MSR, vol 14","DOI":"10.1145\/2597073.2597121"},{"key":"10033_CR80","doi-asserted-by":"crossref","unstructured":"Saha RK, Lyu Y, Lam W, Yoshida H, Prasad MR (2018) Bugs.jar: A large-scale, diverse dataset of real-world java bugs. In: Proceedings of the 15th international conference on mining software repositories. pp 10\u201313","DOI":"10.1145\/3196398.3196473"},{"key":"10033_CR81","doi-asserted-by":"crossref","unstructured":"Selakovic M, Pradel M (2016) Performance issues and optimizations in javascript: an empirical study. In: Proceedings of the 38th international conference on software engineering. ACM, pp 61\u201372","DOI":"10.1145\/2884781.2884829"},{"key":"10033_CR82","doi-asserted-by":"crossref","unstructured":"Sharma T, Fragkoulis M, Spinellis D (2016) Does your configuration code smell?. In: 2016 IEEE\/ACM 13th working conference on mining software repositories (MSR). IEEE, pp 189\u2013200","DOI":"10.1145\/2901739.2901761"},{"key":"10033_CR83","doi-asserted-by":"crossref","unstructured":"Shen Y, Jiang Y, Xu C, Yu P, Ma X, Lu J (2018) Rescue: Crafting regular expression dos attacks. In: 2018 33rd IEEE\/ACM international conference on automated software engineering (ASE). IEEE, pp 225\u2013235","DOI":"10.1145\/3238147.3238159"},{"key":"10033_CR84","doi-asserted-by":"crossref","unstructured":"Shi L, Zhong H, Xie T, Li M (2011) An empirical study on evolution of api documentation. In: International conference on fundamental approaches to software engineering. Springer, pp 416\u2013431","DOI":"10.1007\/978-3-642-19811-3_29"},{"key":"10033_CR85","unstructured":"Skewness | R Tutorial (2021) http:\/\/www.r-tutor.com\/elementary-statistics\/numerical-measures\/skewness"},{"key":"10033_CR86","doi-asserted-by":"crossref","unstructured":"Spishak E, Dietl W, Ernst MD (2012) A type system for regular expressions. In: Proceedings of the 14th workshop on formal techniques for java-like programs. ACM, pp 20\u201326","DOI":"10.1145\/2318202.2318207"},{"key":"10033_CR87","unstructured":"Staicu CA, Pradel M (2018) Freezing the web: A study of redos vulnerabilities in javascript-based web servers. In: 27th {USENIX} Security Symposium ({USENIX} Security 18). pp 361\u2013376"},{"issue":"6","key":"10033_CR88","doi-asserted-by":"publisher","first-page":"1665","DOI":"10.1007\/s10664-013-9258-8","volume":"19","author":"L Tan","year":"2014","unstructured":"Tan L, Liu C, Li Z, Wang X, Zhou Y, Zhai C (2014) Bug characteristics in open source software. Empir Softw Eng 19(6):1665\u20131705","journal-title":"Empir Softw Eng"},{"key":"10033_CR89","doi-asserted-by":"crossref","unstructured":"Teyton C, Falleri JR, Blanc X (2012) Mining library migration graphs. In: 2012 19th working conference on reverse engineering. IEEE, pp 289\u2013298","DOI":"10.1109\/WCRE.2012.38"},{"key":"10033_CR90","doi-asserted-by":"crossref","unstructured":"Thung F, Haryono SA, Serrano L, Muller G, Lawall J, Lo D, Jiang L (2020) Automated deprecated-api usage update for android apps: How far are we?. In: 2020 IEEE 27th international conference on software analysis, evolution and reengineering (SANER). IEEE, pp 602\u2013611","DOI":"10.1109\/SANER48275.2020.9054860"},{"key":"10033_CR91","doi-asserted-by":"crossref","unstructured":"Tufano M, Palomba F, Bavota G, Oliveto R, Di Penta M, De Lucia A, Poshyvanyk D (2015) When and why your code starts to smell bad. In: Proceedings of the 37th international conference on software engineering-volume 1. IEEE Press, pp. 403\u2013414","DOI":"10.1109\/ICSE.2015.59"},{"key":"10033_CR92","doi-asserted-by":"crossref","unstructured":"Vahabzadeh A, Fard AM, Mesbah A (2015) An empirical study of bugs in test code. In: 2015 IEEE international conference on software maintenance and evolution (ICSME). IEEE, pp 101\u2013110","DOI":"10.1109\/ICSM.2015.7332456"},{"key":"10033_CR93","doi-asserted-by":"crossref","unstructured":"Veanes M, De Halleux P, Tillmann N (2010) Rex: Symbolic regular expression explorer. In: 2010 Third international conference on software testing, verification and validation. IEEE, pp 498\u2013507","DOI":"10.1109\/ICST.2010.15"},{"key":"10033_CR94","doi-asserted-by":"crossref","unstructured":"Wan Z, Lo D, Xia X, Cai L (2017) Bug characteristics in blockchain systems: a large-scale empirical study. In: 2017 IEEE\/ACM 14th international conference on mining software repositories (MSR). IEEE, pp 413\u2013424","DOI":"10.1109\/MSR.2017.59"},{"key":"10033_CR95","doi-asserted-by":"crossref","unstructured":"Wang P, Brown C, Jennings JA, Stolee KT (2020) An empirical study on regular expression bugs. In: Proceedings of the 17th international conference on mining software repositories. pp 103\u2013113","DOI":"10.1145\/3379597.3387464"},{"key":"10033_CR96","doi-asserted-by":"crossref","unstructured":"Wang P, Gina R, Stolee KT (2019) Exploring regular expression evolution. In: 2019 IEEE international conference on software analysis, evolution and reengineering (SANER). IEEE, pp 502\u2013513","DOI":"10.1109\/SANER.2019.8667972"},{"key":"10033_CR97","doi-asserted-by":"crossref","unstructured":"Wang P, Stolee KT (2018) How well are regular expressions tested in the wild?. In: Proceedings of the 2018 26th ACM joint meeting on european software engineering conference and symposium on the foundations of software engineering. ACM, pp 668\u2013678","DOI":"10.1145\/3236024.3236072"},{"key":"10033_CR98","unstructured":"Wang X, Hong Y, Chang H, Park K, Langdale G, Hu J, Zhu H (2019) Hyperscan: a fast multi-pattern regex matcher for modern cpus. In: 16th {USENIX} symposium on networked systems design and implementation ({NSDI} 19). pp 631\u2013648"},{"key":"10033_CR99","unstructured":"When you should NOT use Regular Expressions? (2011) https:\/\/softwareengineering.stackexchange.com\/questions\/113237\/when-you-should-not-use-regular-expressions"},{"key":"10033_CR100","doi-asserted-by":"crossref","unstructured":"Widyasari R, Sim SQ, Lok C, Qi H, Phan J, Tay Q, Tan C, Wee F, Tan JE, Yieh Y et al (2020) Bugsinpy: a database of existing bugs in python programs to enable controlled testing and debugging studies. In: Proceedings of the 28th ACM joint meeting on european software engineering conference and symposium on the foundations of software engineering. pp 1556\u20131560","DOI":"10.1145\/3368089.3417943"},{"key":"10033_CR101","doi-asserted-by":"crossref","unstructured":"Wu L, Wu Q, Liang G, Wang Q, Jin Z (2015) Transforming code with compositional mappings for api-library switching. In: 2015 IEEE 39th annual computer software and applications conference, vol. 2. IEEE, pp 316\u2013325","DOI":"10.1109\/COMPSAC.2015.29"},{"key":"10033_CR102","doi-asserted-by":"crossref","unstructured":"W\u00fcstholz V., Olivo O, Heule MJ, Dillig I (2017) Static detection of dos vulnerabilities in programs that use regular expressions. In: International conference on tools and algorithms for the construction and analysis of systems. Springer, pp 3\u201320","DOI":"10.1007\/978-3-662-54580-5_1"},{"key":"10033_CR103","doi-asserted-by":"crossref","unstructured":"Ye X, Chen Q, Wang X, Dillig I, Durrett G (2019) Sketch-driven regular expression generation from natural language and examples. arXiv:1908.05848","DOI":"10.1162\/tacl_a_00339"},{"key":"10033_CR104","doi-asserted-by":"crossref","unstructured":"Yin Z, Yuan D, Zhou Y, Pasupathy S, Bairavasundaram L (2011) How do fixes become bugs?. In: Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on foundations of software engineering. ACM, pp 26\u201336","DOI":"10.1145\/2025113.2025121"},{"key":"10033_CR105","doi-asserted-by":"crossref","unstructured":"Yu S, Xu L, Zhang Y, Wu J, Liao Z, Li Y (2018) Nbsl: A supervised classification model of pull request in github. In: 2018 IEEE international conference on communications (ICC). IEEE, pp 1\u20136","DOI":"10.1109\/ICC.2018.8422103"},{"key":"10033_CR106","doi-asserted-by":"crossref","unstructured":"Zaidman A, Van Rompaey B, Demeyer S, Van Deursen A (2008) Mining software repositories to study co-evolution of production & test code. In: 2008 1st international conference on software testing, verification, and validation. IEEE, pp 220\u2013229","DOI":"10.1109\/ICST.2008.47"},{"key":"10033_CR107","doi-asserted-by":"crossref","unstructured":"Zhang Y, Chen Y, Cheung SC, Xiong Y, Zhang L (2018) An empirical study on tensorflow program bugs. In: Proceedings of the 27th ACM SIGSOFT international symposium on software testing and analysis. ACM, pp 129\u2013140","DOI":"10.1145\/3213846.3213866"},{"key":"10033_CR108","doi-asserted-by":"crossref","unstructured":"Zhang Z, Yang Y, Xia X, Lo D, Ren X, Grundy J (2021) Unveiling the mystery of api evolution in deep learning frameworks a case study of tensorflow 2. In: 2021 IEEE\/ACM 43rd international conference on software engineering: software engineering in practice (ICSE-SEIP). IEEE, pp. 238\u2013247","DOI":"10.1109\/ICSE-SEIP52600.2021.00033"},{"key":"10033_CR109","doi-asserted-by":"crossref","unstructured":"Zhong H, Su Z (2015) An empirical study on real bug fixes. In: Proceedings of the 37th international conference on software engineering-volume 1. IEEE Press, pp 913\u2013923","DOI":"10.1109\/ICSE.2015.101"},{"key":"10033_CR110","doi-asserted-by":"crossref","unstructured":"Zhong H, Xie T, Zhang L, Pei J, Mei H (2009) Mapo: Mining and recommending api usage patterns. In: European conference on object-oriented programming. Springer, pp 318\u2013343","DOI":"10.1007\/978-3-642-03013-0_15"},{"key":"10033_CR111","doi-asserted-by":"crossref","unstructured":"Zhong Z, Guo J, Yang W, Peng J, Xie T, Lou JG, Liu T, Zhang D (2018) Semregex: A semantics-based approach for generating regular expressions from natural language specifications. In: Proceedings of the 2018 conference on empirical methods in natural language processing","DOI":"10.18653\/v1\/D18-1189"}],"container-title":["Empirical Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-021-10033-1.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10664-021-10033-1\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-021-10033-1.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,1,26]],"date-time":"2022-01-26T08:11:41Z","timestamp":1643184701000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10664-021-10033-1"}},"subtitle":["A comprehensive study on regular expression bug causes, fixes, and testing"],"short-title":[],"issued":{"date-parts":[[2021,11,5]]},"references-count":111,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2022,1]]}},"alternative-id":["10033"],"URL":"https:\/\/doi.org\/10.1007\/s10664-021-10033-1","relation":{},"ISSN":["1382-3256","1573-7616"],"issn-type":[{"value":"1382-3256","type":"print"},{"value":"1573-7616","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021,11,5]]},"assertion":[{"value":"1 July 2021","order":1,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"5 November 2021","order":2,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}],"article-number":"21"}}