you can go from 0 to 255 per number.
192.168.x.x is default for LAN, I don't know why you would want to change that.
This is untrue, you can go from 1 to 254 for addresses (the last address has a special meaning and you cannot use it for normal addresses, it is a special "broadcast" address, so for a /24 subnet this address is 11111111 which is 255 in decimal).
There are 3 ranges you can use for private networks which vary based on your requirements. These are 10.0.0.0/8, 172.16.0.0/16 and 192.168.0.0/24 and they're called class A, B and C respectively. Most domestic equipment comes configured with a class C address and there's really not much necessity to change it unless you need two devices to be on separate subnets for security or managability purposes.
The exception to this is with routers, where having a device on the WAN side of your router with a LAN address can get confusing, both from your point of view and the routing table of your router
If the modem is built into the router the point is moot of course.
For a separate modem most setups would put it on a different subnet, or a subnet of a different class: for example, you could configure your router's LAN address as 192.168.1.1 and have the modem on 192.168.2.1. For small business networks I normally configure everything on the WAN side of the main firewall as class B subnet, and the LAN as class A but that's just a personal choice and it's a fairly common pattern in practice.
Sorry the short answers to your questions are:
You don't
need to change them but you may wish to for clarity.
Yes if you stick to valid private addresses.
The digits allowed depend on the subnet you choose.
Basically, you can pick any configuration you like provided it fits into one of the private ranges I mentioned above. So:
192.168.33.0/24 is allowed
192.169.0.0/24 is not a valid private range
10.0.0.0/8 is allowed, as is 10.13.37.0/24
172.16.0.0/16 is allowed also as mentioned above
You can obviously make the subnets
smaller, but bear in mind that the subnet mask must expand to a set of contiguous 1's followed by contiguous 0's. So 255.255.255.248 is a valid subnet mask but 255.255.255.170 is not.
Oops got a bit carried away, I did intend for this to be a short summary