OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

xacml message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: horsing around with regex


as a sanity check i started playing around with regex to see what would be 
involved with basic matching (our matching needs are far simpler than the 
general case because it is highly likely that the policy author will have some 
idea of what is being protected ;o)  attached is a file with a decent sample of 
URLs being compared (drawn from the concerns i heard on the call and on the 
list). the first case is very simple and hits on all of the URLs tested (so that 
the reader can see what the sample consisted of). please note that this 
experiment was tested against full regular expression URL matching, NOT the 
current proposal on the list. i just wanted to see what it would take to ONLY 
use regex.

enjoy.

b
Regular Expression: ^[hH][tT][tT][pP]:\/\/

String Matches
http://
http://foo.com
http://foo.com/
http://foo.com/bar
http://foo.com/bar/oink.html
http://foo.com/bar1/oink.html
http://foo.com:7004
http://foo.com:7008
http://foo.com:7004/
http://foo.com:7008/
http://foo.com:7004/bar
http://foo.com:7008/bar
http://foo.com:7004/bar/
http://foo.com:7008/bar/
http://foo.com:7004/bar/oink.html
http://foo.com:7008/bar/oink.html
http://foo.com:7004/bar1/oink.html
http://foo.com:7008/bar1/oink.html
http://foo.com:7004/bar2/oink.html
http://foo.com:7008/bar2/oink.html
http://FoO.com
http://FoO.com/
http://FoO.com/bar
http://FoO.com/bar/oink.html
http://FoO.com/bar1/oink.html
http://FoO.com:7004
http://FoO.com:7008
http://FoO.com:7004/
http://FoO.com:7008/
http://FoO.com:7004/bar
http://FoO.com:7008/bar
http://FoO.com:7004/bar/
http://FoO.com:7008/bar/
http://FoO.com:7004/bar/oink.html
http://FoO.com:7008/bar/oink.html
http://FoO.com:7004/bar1/oink.html
http://FoO.com:7008/bar1/oink.html
http://FoO.com:7004/bar2/oink.html
http://FoO.com:7008/bar2/oink.html
hTtP://
hTtP://FoO.com
hTtP://FoO.com/
hTtP://FoO.com/bar
hTtP://FoO.com/bar/oink.html
hTtP://FoO.com/bar1/oink.html
hTtP://FoO.com:7004
hTtP://FoO.com:7008
hTtP://FoO.com:7004/
hTtP://FoO.com:7008/
hTtP://FoO.com:7004/bar
hTtP://FoO.com:7008/bar
hTtP://FoO.com:7004/bar/
hTtP://FoO.com:7008/bar/
hTtP://FoO.com:7004/bar/oink.html
hTtP://FoO.com:7008/bar/oink.html
hTtP://FoO.com:7004/bar1/oink.html
hTtP://FoO.com:7008/bar1/oink.html
hTtP://FoO.com:7004/bar2/oink.html
hTtP://FoO.com:7008/bar2/oink.html
hTtP://FoO.com:7004/bAr
hTtP://FoO.com:7008/bAr
hTtP://FoO.com:7004/bAr/
hTtP://FoO.com:7008/bAr/
hTtP://FoO.com:7004/bAr/oink.html
hTtP://FoO.com:7008/bAr/oink.html
hTtP://FoO.com:7004/bAr1/oink.html
hTtP://FoO.com:7008/bAr1/oink.html
hTtP://FoO.com:7004/bAr2/oink.html
hTtP://FoO.com:7008/bAr2/oink.html

String Misses
(none)

===================

Regular Expression: ^[hH][tT][tT][pP]:\/\/[fF][oO][oO]\.[cC][oO][mM]

String Matches
http://foo.com
http://foo.com/
http://foo.com/bar
http://foo.com/bar/oink.html
http://foo.com/bar1/oink.html
http://foo.com:7004
http://foo.com:7008
http://foo.com:7004/
http://foo.com:7008/
http://foo.com:7004/bar
http://foo.com:7008/bar
http://foo.com:7004/bar/
http://foo.com:7008/bar/
http://foo.com:7004/bar/oink.html
http://foo.com:7008/bar/oink.html
http://foo.com:7004/bar1/oink.html
http://foo.com:7008/bar1/oink.html
http://foo.com:7004/bar2/oink.html
http://foo.com:7008/bar2/oink.html
http://FoO.com
http://FoO.com/
http://FoO.com/bar
http://FoO.com/bar/oink.html
http://FoO.com/bar1/oink.html
http://FoO.com:7004
http://FoO.com:7008
http://FoO.com:7004/
http://FoO.com:7008/
http://FoO.com:7004/bar
http://FoO.com:7008/bar
http://FoO.com:7004/bar/
http://FoO.com:7008/bar/
http://FoO.com:7004/bar/oink.html
http://FoO.com:7008/bar/oink.html
http://FoO.com:7004/bar1/oink.html
http://FoO.com:7008/bar1/oink.html
http://FoO.com:7004/bar2/oink.html
http://FoO.com:7008/bar2/oink.html
hTtP://FoO.com
hTtP://FoO.com/
hTtP://FoO.com/bar
hTtP://FoO.com/bar/oink.html
hTtP://FoO.com/bar1/oink.html
hTtP://FoO.com:7004
hTtP://FoO.com:7008
hTtP://FoO.com:7004/
hTtP://FoO.com:7008/
hTtP://FoO.com:7004/bar
hTtP://FoO.com:7008/bar
hTtP://FoO.com:7004/bar/
hTtP://FoO.com:7008/bar/
hTtP://FoO.com:7004/bar/oink.html
hTtP://FoO.com:7008/bar/oink.html
hTtP://FoO.com:7004/bar1/oink.html
hTtP://FoO.com:7008/bar1/oink.html
hTtP://FoO.com:7004/bar2/oink.html
hTtP://FoO.com:7008/bar2/oink.html
hTtP://FoO.com:7004/bAr
hTtP://FoO.com:7008/bAr
hTtP://FoO.com:7004/bAr/
hTtP://FoO.com:7008/bAr/
hTtP://FoO.com:7004/bAr/oink.html
hTtP://FoO.com:7008/bAr/oink.html
hTtP://FoO.com:7004/bAr1/oink.html
hTtP://FoO.com:7008/bAr1/oink.html
hTtP://FoO.com:7004/bAr2/oink.html
hTtP://FoO.com:7008/bAr2/oink.html

String Misses
http://
hTtP://

===================

Regular Expression: ^[hH][tT][tT][pP]:\/\/[fF][oO][oO]\.[cC][oO][mM]

String Matches
http://foo.com
http://foo.com/
http://foo.com/bar
http://foo.com/bar/oink.html
http://foo.com/bar1/oink.html
http://foo.com:7004
http://foo.com:7008
http://foo.com:7004/
http://foo.com:7008/
http://foo.com:7004/bar
http://foo.com:7008/bar
http://foo.com:7004/bar/
http://foo.com:7008/bar/
http://foo.com:7004/bar/oink.html
http://foo.com:7008/bar/oink.html
http://foo.com:7004/bar1/oink.html
http://foo.com:7008/bar1/oink.html
http://foo.com:7004/bar2/oink.html
http://foo.com:7008/bar2/oink.html
http://FoO.com
http://FoO.com/
http://FoO.com/bar
http://FoO.com/bar/oink.html
http://FoO.com/bar1/oink.html
http://FoO.com:7004
http://FoO.com:7008
http://FoO.com:7004/
http://FoO.com:7008/
http://FoO.com:7004/bar
http://FoO.com:7008/bar
http://FoO.com:7004/bar/
http://FoO.com:7008/bar/
http://FoO.com:7004/bar/oink.html
http://FoO.com:7008/bar/oink.html
http://FoO.com:7004/bar1/oink.html
http://FoO.com:7008/bar1/oink.html
http://FoO.com:7004/bar2/oink.html
http://FoO.com:7008/bar2/oink.html
hTtP://FoO.com
hTtP://FoO.com/
hTtP://FoO.com/bar
hTtP://FoO.com/bar/oink.html
hTtP://FoO.com/bar1/oink.html
hTtP://FoO.com:7004
hTtP://FoO.com:7008
hTtP://FoO.com:7004/
hTtP://FoO.com:7008/
hTtP://FoO.com:7004/bar
hTtP://FoO.com:7008/bar
hTtP://FoO.com:7004/bar/
hTtP://FoO.com:7008/bar/
hTtP://FoO.com:7004/bar/oink.html
hTtP://FoO.com:7008/bar/oink.html
hTtP://FoO.com:7004/bar1/oink.html
hTtP://FoO.com:7008/bar1/oink.html
hTtP://FoO.com:7004/bar2/oink.html
hTtP://FoO.com:7008/bar2/oink.html
hTtP://FoO.com:7004/bAr
hTtP://FoO.com:7008/bAr
hTtP://FoO.com:7004/bAr/
hTtP://FoO.com:7008/bAr/
hTtP://FoO.com:7004/bAr/oink.html
hTtP://FoO.com:7008/bAr/oink.html
hTtP://FoO.com:7004/bAr1/oink.html
hTtP://FoO.com:7008/bAr1/oink.html
hTtP://FoO.com:7004/bAr2/oink.html
hTtP://FoO.com:7008/bAr2/oink.html

String Misses
http://
hTtP://

===================

Regular Expression: ^[hH][tT][tT][pP]:\/\/[fF][oO][oO]\.[cC][oO][mM]\/bar

String Matches
http://foo.com/bar
http://foo.com/bar/oink.html
http://foo.com/bar1/oink.html
http://FoO.com/bar
http://FoO.com/bar/oink.html
http://FoO.com/bar1/oink.html
hTtP://FoO.com/bar
hTtP://FoO.com/bar/oink.html
hTtP://FoO.com/bar1/oink.html
String Misses
http://
http://foo.com
http://foo.com/
http://foo.com:7004
http://foo.com:7008
http://foo.com:7004/
http://foo.com:7008/
http://foo.com:7004/bar
http://foo.com:7008/bar
http://foo.com:7004/bar/
http://foo.com:7008/bar/
http://foo.com:7004/bar/oink.html
http://foo.com:7008/bar/oink.html
http://foo.com:7004/bar1/oink.html
http://foo.com:7008/bar1/oink.html
http://foo.com:7004/bar2/oink.html
http://foo.com:7008/bar2/oink.html
http://FoO.com
http://FoO.com/
http://FoO.com:7004
http://FoO.com:7008
http://FoO.com:7004/
http://FoO.com:7008/
http://FoO.com:7004/bar
http://FoO.com:7008/bar
http://FoO.com:7004/bar/
http://FoO.com:7008/bar/
http://FoO.com:7004/bar/oink.html
http://FoO.com:7008/bar/oink.html
http://FoO.com:7004/bar1/oink.html
http://FoO.com:7008/bar1/oink.html
http://FoO.com:7004/bar2/oink.html
http://FoO.com:7008/bar2/oink.html
hTtP://
hTtP://FoO.com
hTtP://FoO.com/
hTtP://FoO.com:7004
hTtP://FoO.com:7008
hTtP://FoO.com:7004/
hTtP://FoO.com:7008/
hTtP://FoO.com:7004/bar
hTtP://FoO.com:7008/bar
hTtP://FoO.com:7004/bar/
hTtP://FoO.com:7008/bar/
hTtP://FoO.com:7004/bar/oink.html
hTtP://FoO.com:7008/bar/oink.html
hTtP://FoO.com:7004/bar1/oink.html
hTtP://FoO.com:7008/bar1/oink.html
hTtP://FoO.com:7004/bar2/oink.html
hTtP://FoO.com:7008/bar2/oink.html
hTtP://FoO.com:7004/bAr
hTtP://FoO.com:7008/bAr
hTtP://FoO.com:7004/bAr/
hTtP://FoO.com:7008/bAr/
hTtP://FoO.com:7004/bAr/oink.html
hTtP://FoO.com:7008/bAr/oink.html
hTtP://FoO.com:7004/bAr1/oink.html
hTtP://FoO.com:7008/bAr1/oink.html
hTtP://FoO.com:7004/bAr2/oink.html
hTtP://FoO.com:7008/bAr2/oink.html

===================

Regular Expression: ^[hH][tT][tT][pP]:\/\/[fF][oO][oO]\.[cC][oO][mM]:700[3-6]\/bar

String Matches
http://foo.com:7004/bar
http://foo.com:7004/bar/
http://foo.com:7004/bar/oink.html
http://foo.com:7004/bar1/oink.html
http://foo.com:7004/bar2/oink.html
http://FoO.com:7004/bar
http://FoO.com:7004/bar/
http://FoO.com:7004/bar/oink.html
http://FoO.com:7004/bar1/oink.html
http://FoO.com:7004/bar2/oink.html
hTtP://FoO.com:7004/bar
hTtP://FoO.com:7004/bar/
hTtP://FoO.com:7004/bar/oink.html
hTtP://FoO.com:7004/bar1/oink.html
hTtP://FoO.com:7004/bar2/oink.html

String Misses
http://
http://foo.com
http://foo.com/
http://foo.com/bar
http://foo.com/bar/oink.html
http://foo.com/bar1/oink.html
http://foo.com:7004
http://foo.com:7008
http://foo.com:7004/
http://foo.com:7008/
http://foo.com:7008/bar
http://foo.com:7008/bar/
http://foo.com:7008/bar/oink.html
http://foo.com:7008/bar1/oink.html
http://foo.com:7008/bar2/oink.html
http://FoO.com
http://FoO.com/
http://FoO.com/bar
http://FoO.com/bar/oink.html
http://FoO.com/bar1/oink.html
http://FoO.com:7004
http://FoO.com:7008
http://FoO.com:7004/
http://FoO.com:7008/
http://FoO.com:7008/bar
http://FoO.com:7008/bar/
http://FoO.com:7008/bar/oink.html
http://FoO.com:7008/bar1/oink.html
http://FoO.com:7008/bar2/oink.html
hTtP://
hTtP://FoO.com
hTtP://FoO.com/
hTtP://FoO.com/bar
hTtP://FoO.com/bar/oink.html
hTtP://FoO.com/bar1/oink.html
hTtP://FoO.com:7004
hTtP://FoO.com:7008
hTtP://FoO.com:7004/
hTtP://FoO.com:7008/
hTtP://FoO.com:7008/bar
hTtP://FoO.com:7008/bar/
hTtP://FoO.com:7008/bar/oink.html
hTtP://FoO.com:7008/bar1/oink.html
hTtP://FoO.com:7008/bar2/oink.html
hTtP://FoO.com:7004/bAr
hTtP://FoO.com:7008/bAr
hTtP://FoO.com:7004/bAr/
hTtP://FoO.com:7008/bAr/
hTtP://FoO.com:7004/bAr/oink.html
hTtP://FoO.com:7008/bAr/oink.html
hTtP://FoO.com:7004/bAr1/oink.html
hTtP://FoO.com:7008/bAr1/oink.html
hTtP://FoO.com:7004/bAr2/oink.html
hTtP://FoO.com:7008/bAr2/oink.html

===================

Regular Expression: ^[hH][tT][tT][pP]:\/\/[fF][oO][oO]\.[cC][oO][mM]\/bar.\/

String Matches
http://foo.com/bar1/oink.html
http://FoO.com/bar1/oink.html
hTtP://FoO.com/bar1/oink.html

String Misses
http://
http://foo.com
http://foo.com/
http://foo.com/bar
http://foo.com/bar/oink.html
http://foo.com:7004
http://foo.com:7008
http://foo.com:7004/
http://foo.com:7008/
http://foo.com:7004/bar
http://foo.com:7008/bar
http://foo.com:7004/bar/
http://foo.com:7008/bar/
http://foo.com:7004/bar/oink.html
http://foo.com:7008/bar/oink.html
http://foo.com:7004/bar1/oink.html
http://foo.com:7008/bar1/oink.html
http://foo.com:7004/bar2/oink.html
http://foo.com:7008/bar2/oink.html
http://FoO.com
http://FoO.com/
http://FoO.com/bar
http://FoO.com/bar/oink.html
http://FoO.com:7004
http://FoO.com:7008
http://FoO.com:7004/
http://FoO.com:7008/
http://FoO.com:7004/bar
http://FoO.com:7008/bar
http://FoO.com:7004/bar/
http://FoO.com:7008/bar/
http://FoO.com:7004/bar/oink.html
http://FoO.com:7008/bar/oink.html
http://FoO.com:7004/bar1/oink.html
http://FoO.com:7008/bar1/oink.html
http://FoO.com:7004/bar2/oink.html
http://FoO.com:7008/bar2/oink.html
hTtP://
hTtP://FoO.com
hTtP://FoO.com/
hTtP://FoO.com/bar
hTtP://FoO.com/bar/oink.html
hTtP://FoO.com:7004
hTtP://FoO.com:7008
hTtP://FoO.com:7004/
hTtP://FoO.com:7008/
hTtP://FoO.com:7004/bar
hTtP://FoO.com:7008/bar
hTtP://FoO.com:7004/bar/
hTtP://FoO.com:7008/bar/
hTtP://FoO.com:7004/bar/oink.html
hTtP://FoO.com:7008/bar/oink.html
hTtP://FoO.com:7004/bar1/oink.html
hTtP://FoO.com:7008/bar1/oink.html
hTtP://FoO.com:7004/bar2/oink.html
hTtP://FoO.com:7008/bar2/oink.html
hTtP://FoO.com:7004/bAr
hTtP://FoO.com:7008/bAr
hTtP://FoO.com:7004/bAr/
hTtP://FoO.com:7008/bAr/
hTtP://FoO.com:7004/bAr/oink.html
hTtP://FoO.com:7008/bAr/oink.html
hTtP://FoO.com:7004/bAr1/oink.html
hTtP://FoO.com:7008/bAr1/oink.html
hTtP://FoO.com:7004/bAr2/oink.html
hTtP://FoO.com:7008/bAr2/oink.html

===================

Regular Expression: ^[hH][tT][tT][pP]:\/\/[fF][oO][oO]\.[cC][oO][mM]:700[3-6]\/bar.\/

String Matches
http://foo.com:7004/bar1/oink.html
http://foo.com:7004/bar2/oink.html
http://FoO.com:7004/bar1/oink.html
http://FoO.com:7004/bar2/oink.html
hTtP://FoO.com:7004/bar1/oink.html
hTtP://FoO.com:7004/bar2/oink.html

String Misses
http://
http://foo.com
http://foo.com/
http://foo.com/bar
http://foo.com/bar/oink.html
http://foo.com/bar1/oink.html
http://foo.com:7004
http://foo.com:7008
http://foo.com:7004/
http://foo.com:7008/
http://foo.com:7004/bar
http://foo.com:7008/bar
http://foo.com:7004/bar/
http://foo.com:7008/bar/
http://foo.com:7004/bar/oink.html
http://foo.com:7008/bar/oink.html
http://foo.com:7008/bar1/oink.html
http://foo.com:7008/bar2/oink.html
http://FoO.com
http://FoO.com/
http://FoO.com/bar
http://FoO.com/bar/oink.html
http://FoO.com/bar1/oink.html
http://FoO.com:7004
http://FoO.com:7008
http://FoO.com:7004/
http://FoO.com:7008/
http://FoO.com:7004/bar
http://FoO.com:7008/bar
http://FoO.com:7004/bar/
http://FoO.com:7008/bar/
http://FoO.com:7004/bar/oink.html
http://FoO.com:7008/bar/oink.html
http://FoO.com:7008/bar1/oink.html
http://FoO.com:7008/bar2/oink.html
hTtP://
hTtP://FoO.com
hTtP://FoO.com/
hTtP://FoO.com/bar
hTtP://FoO.com/bar/oink.html
hTtP://FoO.com/bar1/oink.html
hTtP://FoO.com:7004
hTtP://FoO.com:7008
hTtP://FoO.com:7004/
hTtP://FoO.com:7008/
hTtP://FoO.com:7004/bar
hTtP://FoO.com:7008/bar
hTtP://FoO.com:7004/bar/
hTtP://FoO.com:7008/bar/
hTtP://FoO.com:7004/bar/oink.html
hTtP://FoO.com:7008/bar/oink.html
hTtP://FoO.com:7008/bar1/oink.html
hTtP://FoO.com:7008/bar2/oink.html
hTtP://FoO.com:7004/bAr
hTtP://FoO.com:7008/bAr
hTtP://FoO.com:7004/bAr/
hTtP://FoO.com:7008/bAr/
hTtP://FoO.com:7004/bAr/oink.html
hTtP://FoO.com:7008/bAr/oink.html
hTtP://FoO.com:7004/bAr1/oink.html
hTtP://FoO.com:7008/bAr1/oink.html
hTtP://FoO.com:7004/bAr2/oink.html
hTtP://FoO.com:7008/bAr2/oink.html

===================


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]