Python 3, 106103 bytes
lambdaimport s:rere;re.matchcompile("^(0[0-7]*|[1-9]\d*|0[xX][\dA-Fa-f]+)([uU](L|l|LL|ll)?|(L|l|LL|ll)[uU]?)?$",s) import re.match just a basic regex, probably very suboptimal
returns a match object for truthy and None for falsy; input may not contain surrounding whitespace
-3 bytes thanks to Digital Trauma (on my Retina answer)
-1 byte thanks to FryAmTheEggman (on my Retina answer)
-3 bytes thanks to pxeger