Hello, looking quickly at the code, I see that there is a define of 500 limit for each line loaded from the file, probably it is what the developer considered to be enough for a regexp. I haven't gone further checking, as I am out of the office, but I guess it just truncates the longer lines to the limit.
So it would require a patch to extend that. Cheers, Daniel March 23, 2017 9:05 AM, "Tim Balmer" <t.bal...@edutel.nl> wrote: > Hi, > > I discovered some strange behavior from the regex module yesterday (kamailio > version 4.4.5). > > For example we have the phone number 0033755500381 that we try to match with > the following kamailio > code: > > #!define REGEX_FF_NEG_INTERNATIONAL "6" > ... > if (pcre_match_group("$rU", REGEX_FF_NEG_INTERNATIONAL)) > { > # Do something > } > > When the content of our regex groups file is like this: > > [6] > ^(\+|00)3(0690|0693|0694|0695|0697|0698|0699|36|37|4160|46|47|51160|511691|511693|511696|511891|5118 > 3|511896|513|516091|5160921|516093|516096|516391|516392|516393|516396|516591|516592|516593|516596|51 > 691|5166921|516693|516696|5191|5192|5193|5196|538|54388|543 > 89|546|5475|5477|548|567117|5672|5677|5679|5692|5694|5696|5698|5699|5795|5796|5797|5799|58299|584|58 > 0|5948|5987|5988|5989|59988|59989|620|630|631|670|706|712|725|728|774|776|8591|8592|8595|8597|8598|8 > 99|8620|8621|8630|8631|8640|8641|8643|8649|8650|8651|8660| > 8661|8664|8670|8671|869814|906698|93) > > The above if statment is not matching, although it should match according to > any regex validator > (for example https://regex101.com ) > > But when I split the above regex in smaller parts, like this: > > [6] > ^(\+|00)306(90|93|94|95|97|98|99) > ^(\+|00)336 > ^(\+|00)337 > ^(\+|00)34160 > ^(\+|00)346 > ^(\+|00)347 > ^(\+|00)351(160|1691|1693|1696|1891|1893|1896|3|6091|60921|6093|6096|6391|6392|6393|6396|6591|6592|6 > 93|6596|6691|66921|6693|6696|91|92|93|96) > ^(\+|00)3538 > ^(\+|00)354(388|389|6|75|77|8) > ^(\+|00)356(7117|72|77|79|92|94|96|98|99) > ^(\+|00)357(95|96|97|99) > ^(\+|00)358(299|4|50) > ^(\+|00)359(48|87|88|89|988|989) > ^(\+|00)3620 > ^(\+|00)363(0|1) > ^(\+|00)3670 > ^(\+|00)3706 > ^(\+|00)3712 > ^(\+|00)372(5|8) > ^(\+|00)377(4|6) > ^(\+|00)385(91|92|95|97|98|99) > ^(\+|00)386(20|21|30|31|40|41|43|49|50|51|60|61|64|70|71|9814) > ^(\+|00)3906698 > ^(\+|00)393 > > Then the exact same regex module call as before does result in a match as > expected. > > So to me it looks like the regex module is having trouble with large regex > expressions, I did check > the logs but there is nothing strange there, that means also the large > expression is correctly > loaded according to the logs while in fact it is not working. Checked the > regex module > documentation but there I cannot find any limits regarding to the size of > invididual expressions. > > Is it me missing something or did I discover a bug in de regex module? > > Best Regards, > > Tim Balmer > Edutel BV > > _______________________________________________ > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list > sr-users@lists.sip-router.org > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users -- Daniel-Constantin Mierla www.kamailio.org -- www.asipto.com _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users