I think the closest you will get is to use:
H H(0-3) * * *
This will run at some point between 0:00 and 3:59@midnight
This will run at some point between 0:00 and 2:59
The H(4-8) construct only works if the second items is larger then the first.
But you might as well fill in the hour yourself. Jenkins actually never changes the hour the jobs runs once it is set. It will basically create some random hour once you save the job and always run the job at that particular time.
Of course, you can also file a bug report or feature request that you should be able to specify this as H(22-3)
or better, fix the code and submit a patch ;)