I tried this:<br>class "rule3" {                                                                                                                                                                             <br>match if option vendor-class-identifier ~= ".*" and not (option vendor-class-identifier ~= ".*MSFT.*") and not (not exists vendor-class-identifier) and not (option nwip-domain ~= "str.?");<br>

}<br><br>This doesn't work. It should have assigned a lease. vendor-class-identifier has data "NSFT5.0".<br>There is no option sent nwip-domain in discover packet. And when I remove this from match, it works!<br>

[~= is for regular expressions ]<br><br>what could be the issue here ? This was working fine when I used substring, but with RE, it doesn't seem to work. Looks like the option which is not present, the RE doesn't apply. But again its confusing because:<br>

class "rule2" {                                                                                                                            <br>match if option nwip-domain ~= "str.?" and not (option vendor-class-identifier ~= ".*MSFT.*") and not (not exists vendor-class-identifier);<br>

}<br>This works meaning there is no lease assigned from this pool. It means the first RE evaluated to 'false'. And so 'not (option nwip-domain ~= "str.?")' should evaluate to true.<br><br>thanks<br>

Ashmath<br>