you are right to suspect that this would not work - the single \d as opposed to \d+ before the % would mean that the regex would fail to match unless the % was between 0 and 9.
what I expect you are looking for is
for(<>) { /(\d+)%/; print if $1 >= 88 }