Before segregation of testcases, one must have clear idea about the different testing methods. So please refer the link for that.
So, obviously, the smoke testing suite will contain the high priority and high severity testcases. So and if time permits, include severity 2 level as well. So, the set of testcases with high severity and high priority will be covered as part of smoke testing at first and if time permits then only the medium severity testcases can be included.
And to determine the sanity testing suite, at first identify the change area. Then include those testcases which are specific to that particular change area at first. Then include the testcases of the surrounded modules or application which will be immediately impacted for that change.
And for regression suite, it covers the surrounding modules along with the testcases of the specific impacted module. Regression test suite should cover a significant area as it ensures the health of the application a a whole. Better execute this suite using automation scripts.
So, percentage wise, smoke test suite will contain minimum number of test cases, and then sanity test suite will contain the number of test cases in between smoke and regression suite and for the regression suite, the number of test cases will be maximum among those two segments.