Prosecution Insights
Last updated: April 19, 2026
Application No. 18/242,932

Regular Expression Rule Grouping Balancer

Final Rejection §103
Filed
Sep 06, 2023
Examiner
MAI, KEVIN S
Art Unit
2499
Tech Center
2400 — Computer Networks
Assignee
International Business Machines Corporation
OA Round
2 (Final)
29%
Grant Probability
At Risk
3-4
OA Rounds
5y 3m
To Grant
55%
With Interview

Examiner Intelligence

Grants only 29% of cases
29%
Career Allow Rate
125 granted / 428 resolved
-28.8% vs TC avg
Strong +26% interview lift
Without
With
+25.5%
Interview Lift
resolved cases with interview
Typical timeline
5y 3m
Avg Prosecution
39 currently pending
Career history
467
Total Applications
across all art units

Statute-Specific Performance

§101
16.5%
-23.5% vs TC avg
§103
52.5%
+12.5% vs TC avg
§102
7.4%
-32.6% vs TC avg
§112
21.8%
-18.2% vs TC avg
Black line = Tech Center average estimate • Based on career data from 428 resolved cases

Office Action

§103
DETAILED ACTION This Office Action has been issued in response to Applicant's Amendment filed November 24, 2025. Claims 1, 3, 5, 10, 12, 14, 19, 21, and 23 have been amended. Claims 2, 11, and 20 have been cancelled. Claims 1, 3-10, 12-19, and 21-25 have been examined and are pending. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . Response to Arguments Applicant's arguments filed November 24, 2025 have been fully considered but they are moot in view of the new grounds of rejection. Claim Rejections - 35 USC § 103 In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows: 1. Determining the scope and contents of the prior art. 2. Ascertaining the differences between the prior art and the claims at issue. 3. Resolving the level of ordinary skill in the pertinent art. 4. Considering objective evidence present in the application indicating obviousness or nonobviousness. This application currently names joint inventors. In considering patentability of the claims the examiner presumes that the subject matter of the various claims was commonly owned as of the effective filing date of the claimed invention(s) absent any evidence to the contrary. Applicant is advised of the obligation under 37 CFR 1.56 to point out the inventor and effective filing dates of each claim that was not commonly owned as of the effective filing date of the later invention in order for the examiner to consider the applicability of 35 U.S.C. 102(b)(2)(C) for any potential 35 U.S.C. 102(a)(2) prior art against the later invention. Claims 1, 7, 8, 10, 16, 17, and 19 are rejected under 35 U.S.C. 103 as being unpatentable over US Pub. No. 2005/0278783 to Chien et al. (hereinafter “Chien”) and further in view of US Pub. No. 2010/0325633 to Eguro et al. (hereinafter “Eguro”) and further in view of US Pub. No. 2014/0040261 to Horne et al. (hereinafter “Horne”) and further in view of US Pub. No. 2015/0355891 to Angerer (hereinafter “Angerer”). As to Claim 1, Chien discloses a method, in a data processing system, for intrusion detection based on regular expression matching, the method comprising: partitioning a regular expression (RegEx) rule set into a plurality of different partitions (Paragraph [0018] of Chien discloses split a regular expression that corresponds to a number of patterns into sub-expressions split a regular expression that corresponds to a number of patterns into sub-expressions); wherein partitioning the RegEx rule set comprises: [determining a number of states in each RegEx rule of the RegEx rule set; predicting a number of saved states that may be saved by compiling at least two RegEx rules in the RegEx rule set together; and inputting into at least one optimization algorithm the number of states in each RegEx rule of the RegEx rule set, the number of saved states, and a number of desired partitions in order to generate partitions based on the number of states in each RegEx rule, the number of saved states, and the number of desired partitions]; distributing the plurality of different partitions to a [plurality] of different edge computing devices associated with a protected network of computing resources (Paragraph [0018] of Chien discloses utilize a second processing unit to move the data units through these finite automata); routing data packets of an incoming data stream to the [plurality] of edge computing devices, wherein each edge computing device in the [plurality] of edge computing devices, processes the data packets to determine whether the data packets match RegEx rules in a partition distributed to the edge computing device (Paragraph [0018] of Chien discloses utilize a second processing unit to move the data units through these finite automata. identification of the suspected data units is based on the merged results of the finite automata); and determining whether the incoming data stream represents an intrusion based on a combination of results of the processing of the data packets by the [plurality] of edge computing devices (Paragraph [0018] of Chien discloses identification of the suspected data units is based on the merged results of the finite automata). Chien does not explicitly disclose a plurality of different computing devices. However, Eguro discloses this. Paragraph [0038] of Eguro discloses the regular expressions may be distributed into sets, where each set fits within the physical resource constraints of an individual programmable hardware device. Paragraph [0071] of Eguro discloses instead of requiring an individual piece of programmable hardware 118 large enough to run all regular expressions to be processed, the reg exs may be split out to execute across one or more programmable hardware devices 118. It would have been obvious to one of ordinary skill in the art before the effective filing of the invention to combine the regular expression system as disclosed by Chien, with distributing the regular expression to a plurality of devices as disclosed by Eguro. One of ordinary skill in the art would have been motivated to combine to apply a known technique to a known device ready for improvement to yield predictable results. Chien and Eguro are directed toward regular expression systems and as such it would be obvious to use the techniques of one in the other. Paragraph [0071] of Eguro discloses instead of requiring an individual piece of programmable hardware 118 large enough to run all regular expressions to be processed, the reg exs may be split out to execute across one or more programmable hardware devices 118. Chien does not explicitly disclose determining a number of states in each RegEx rule of the RegEx rule set and predicting a number of saved states that may be saved by compiling at least two RegEx rules in the RegEx rule set together and inputting into at least one optimization algorithm the number of states in each RegEx rule of the RegEx rule set, the number of saved states, … in order to generate partitions based on the number of states in each RegEx rule, the number of saved states. However, Horne discloses this. Paragraph [0068] of Horne discloses input partitioning techniques described herein may be used to replace a plurality of state transitions having identical behavior with a single state transition (e.g., thereby reducing storage area by eliminating duplicative state transition information), and minimization techniques described herein may be applied to an automaton to find an equivalent automaton that has a fewer number of states (e.g., thereby reducing storage area and increasing processing speeds). Paragraph [0093] of Horne discloses minimization includes identifying partitions with overlapping states (predicted saved states). It would have been obvious to one of ordinary skill in the art before the effective filing of the invention to combine the regular expression system as disclosed by Chien, with minimizing the number of states as disclosed by Horne. One of ordinary skill in the art would have been motivated to combine to apply a known technique to a known device ready for improvement to yield predictable results. Chien and Horne are directed toward regular expression systems and as such it would be obvious to use the techniques of one in the other. Paragraph [0068] of Horne discloses these techniques reducing storage area by eliminating duplicative state transition information and increasing processing speeds. Chien does not disclose a number of desired partitions. However, Angerer discloses this. Paragraph [0009] of Angerer discloses a system for distributing sets of regular expressions to a fixed number of state machine engines. It would have been obvious to one of ordinary skill in the art before the effective filing of the invention to combine the regular expression system as disclosed by Chien, with considering the number of desired partitions as disclosed by Angerer. One of ordinary skill in the art would have been motivated to combine to apply a known technique to a known device ready for improvement to yield predictable results. Chien and Angerer are directed toward regular expression systems and as such it would be obvious to use the techniques of one in the other. Paragraph [0009] of Angerer discloses a system for distributing sets of regular expressions to a fixed number of state machine engines using a coloring tool configured to perform an optimized graph coloring algorithm on the interference graph to assign a different color to each represented regular expression in the graph. Accordingly, optimization of regular expressions is known to be applied to a fixed number. As to Claim 7, Chien-Eguro discloses the method of claim 1 wherein generating a number of states comprises: building a nondeterministic finite automaton (NFA); performing a state reduction operation on the NFA; and determining a number of states of the NFA after performance of the state reduction operation (Paragraph [0046] of Horne discloses The automaton M.sub.1 may be converted into the nondeterministic finite automaton (NFA) M.sub.2. Paragraph [0068] of Horne discloses input partitioning techniques described herein may be used to replace a plurality of state transitions having identical behavior with a single state transition (e.g., thereby reducing storage area by eliminating duplicative state transition information), and minimization techniques described herein may be applied to an automaton to find an equivalent automaton that has a fewer number of states (e.g., thereby reducing storage area and increasing processing speeds)) Examiner recites the same rationale to combine used for claim 1. As to Claim 8, Chien-Eguro discloses the method of claim 1, wherein the partitions in the plurality of different partitions are generated to have a size that fits within a memory or data storage capacity of the edge computing devices (Paragraph [0038] of Eguro discloses the regular expressions may be distributed into sets, where each set fits within the physical resource constraints of an individual programmable hardware device). Examiner recites the same rationale to combine used for claim 1. As to Claim 10, Chien discloses a computer program product comprising a computer readable storage medium having a computer readable program stored data processing system, causes the data processing system to: partition a regular expression (RegEx) rule set into a plurality of different partitions (Paragraph [0018] of Chien discloses split a regular expression that corresponds to a number of patterns into sub-expressions split a regular expression that corresponds to a number of patterns into sub-expressions); wherein partitioning the RegEx rule set comprises: [determining a number of states in each RegEx rule of the RegEx rule set; predicting a number of saved states that may be saved by compiling at least two RegEx rules in the RegEx rule set together; and inputting into at least one optimization algorithm the number of states in each RegEx rule of the RegEx rule set, the number of saved states, and a number of desired partitions in order to generate partitions based on the number of states in each RegEx rule, the number of saved states, and the number of desired partitions]; distribute the plurality of different partitions to a [plurality] of different edge computing devices associated with a protected network of computing resources (Paragraph [0018] of Chien discloses utilize a second processing unit to move the data units through these finite automata); route data packets of an incoming data stream to the [plurality] of edge computing devices, wherein each edge computing device in the [plurality] of edge computing devices, processes the data packets to determine whether the data packets match RegEx rules in a partition distributed to the edge computing device (Paragraph [0018] of Chien discloses utilize a second processing unit to move the data units through these finite automata. identification of the suspected data units is based on the merged results of the finite automata); and determine whether the incoming data stream represents an intrusion based on a combination of results of the processing of the data packets by the [plurality] of edge computing devices (Paragraph [0018] of Chien discloses identification of the suspected data units is based on the merged results of the finite automata). Chien does not explicitly disclose a plurality of different computing devices. However, Eguro discloses this. Paragraph [0038] of Eguro discloses the regular expressions may be distributed into sets, where each set fits within the physical resource constraints of an individual programmable hardware device. Paragraph [0071] of Eguro discloses instead of requiring an individual piece of programmable hardware 118 large enough to run all regular expressions to be processed, the reg exs may be split out to execute across one or more programmable hardware devices 118. Examiner recites the same rationale to combine used for claim 1. Chien does not explicitly disclose determining a number of states in each RegEx rule of the RegEx rule set and predicting a number of saved states that may be saved by compiling at least two RegEx rules in the RegEx rule set together and inputting into at least one optimization algorithm the number of states in each RegEx rule of the RegEx rule set, the number of saved states, … in order to generate partitions based on the number of states in each RegEx rule, the number of saved states. However, Horne discloses this. Paragraph [0068] of Horne discloses input partitioning techniques described herein may be used to replace a plurality of state transitions having identical behavior with a single state transition (e.g., thereby reducing storage area by eliminating duplicative state transition information), and minimization techniques described herein may be applied to an automaton to find an equivalent automaton that has a fewer number of states (e.g., thereby reducing storage area and increasing processing speeds). Paragraph [0093] of Horne discloses minimization includes identifying partitions with overlapping states (predicted saved states). Examiner recites the same rationale to combine used for claim 1. Chien does not disclose a number of desired partitions. However, Angerer discloses this. Paragraph [0009] of Angerer discloses a system for distributing sets of regular expressions to a fixed number of state machine engines. Examiner recites the same rationale to combine used for claim 1. As to Claim 16, Chien-Eguro discloses computer program product of claim 10, wherein generating a number of states comprises: building a nondeterministic finite automaton (NFA); performing a state reduction operation on the NFA; and determining a number of states of the NFA after performance of the state reduction operation (Paragraph [0046] of Horne discloses The automaton M.sub.1 may be converted into the nondeterministic finite automaton (NFA) M.sub.2. Paragraph [0068] of Horne discloses input partitioning techniques described herein may be used to replace a plurality of state transitions having identical behavior with a single state transition (e.g., thereby reducing storage area by eliminating duplicative state transition information), and minimization techniques described herein may be applied to an automaton to find an equivalent automaton that has a fewer number of states (e.g., thereby reducing storage area and increasing processing speeds)). Examiner recites the same rationale to combine used for claim 2. As to Claim 17, Chien-Eguro discloses the computer program product of claim 10, wherein the partitions in the plurality of different partitions are generated to have a size that fits within a memory or data storage capacity of the edge computing devices (Paragraph [0038] of Eguro discloses the regular expressions may be distributed into sets, where each set fits within the physical resource constraints of an individual programmable hardware device). Examiner recites the same rationale to combine used for claim 1. As to Claim 19, Chien discloses an apparatus comprising: at least one processor; and at least one memory coupled to the at least one processor, wherein the at least one memory comprises instructions which, when executed by the at least one processor, cause the at least one processor to: partition a regular expression (RegEx) rule set into a plurality of different partitions (Paragraph [0018] of Chien discloses split a regular expression that corresponds to a number of patterns into sub-expressions split a regular expression that corresponds to a number of patterns into sub-expressions); wherein partitioning the RegEx rule set comprises: [determining a number of states in each RegEx rule of the RegEx rule set; predicting a number of saved states that may be saved by compiling at least two RegEx rules in the RegEx rule set together; and inputting into at least one optimization algorithm the number of states in each RegEx rule of the RegEx rule set, the number of saved states, and a number of desired partitions in order to generate partitions based on the number of states in each RegEx rule, the number of saved states, and the number of desired partitions]; distribute the plurality of different partitions to a [plurality] of different edge computing devices associated with a protected network of computing resources (Paragraph [0018] of Chien discloses utilize a second processing unit to move the data units through these finite automata); route data packets of an incoming data stream to the [plurality] of edge computing devices, wherein each edge computing device in the [plurality] of edge computing devices, processes the data packets to determine whether the data packets match RegEx rules in a partition distributed to the edge computing device (Paragraph [0018] of Chien discloses utilize a second processing unit to move the data units through these finite automata. identification of the suspected data units is based on the merged results of the finite automata); and determine whether the incoming data stream represents an intrusion based on a combination of results of the processing of the data packets by the [plurality] of edge computing devices (Paragraph [0018] of Chien discloses identification of the suspected data units is based on the merged results of the finite automata). Chien does not explicitly disclose a plurality of different computing devices. However, Eguro discloses this. Paragraph [0038] of Eguro discloses the regular expressions may be distributed into sets, where each set fits within the physical resource constraints of an individual programmable hardware device. Paragraph [0071] of Eguro discloses instead of requiring an individual piece of programmable hardware 118 large enough to run all regular expressions to be processed, the reg exs may be split out to execute across one or more programmable hardware devices 118. Examiner recites the same rationale to combine used for claim 1. Chien does not explicitly disclose determining a number of states in each RegEx rule of the RegEx rule set and predicting a number of saved states that may be saved by compiling at least two RegEx rules in the RegEx rule set together and inputting into at least one optimization algorithm the number of states in each RegEx rule of the RegEx rule set, the number of saved states, … in order to generate partitions based on the number of states in each RegEx rule, the number of saved states. However, Horne discloses this. Paragraph [0068] of Horne discloses input partitioning techniques described herein may be used to replace a plurality of state transitions having identical behavior with a single state transition (e.g., thereby reducing storage area by eliminating duplicative state transition information), and minimization techniques described herein may be applied to an automaton to find an equivalent automaton that has a fewer number of states (e.g., thereby reducing storage area and increasing processing speeds). Paragraph [0093] of Horne discloses minimization includes identifying partitions with overlapping states (predicted saved states). Examiner recites the same rationale to combine used for claim 1. Chien does not disclose a number of desired partitions. However, Angerer discloses this. Paragraph [0009] of Angerer discloses a system for distributing sets of regular expressions to a fixed number of state machine engines. Examiner recites the same rationale to combine used for claim 1. Claims 3-6, 12-15, and 21-24 are rejected under 35 U.S.C. 103 as being unpatentable over Chien-Eguro-Horne-Angerer and further in view of US Pub. No. 2021/0365802 to Sofer et al. (hereinafter “Sofer”). As to Claim 3, Chien-Eguro-Horne-Angerer discloses the method of claim 1. Chien-Eguro-Horne-Angerer does not explicitly disclose wherein partitioning the RegEx rule set further comprises: generating a [weighted] graph based on the number of states and number of saved states (Paragraph [0045] of Horne discloses The automaton M.sub.1 may be considered as a directed graph); and applying at least one optimization algorithm to the weighted graph to generate the plurality of different partitions (Paragraph [0068] of Horne discloses input partitioning techniques described herein may be used to replace a plurality of state transitions having identical behavior with a single state transition (e.g., thereby reducing storage area by eliminating duplicative state transition information), and minimization techniques described herein may be applied to an automaton to find an equivalent automaton that has a fewer number of states (e.g., thereby reducing storage area and increasing processing speeds)). Examiner recites the same rationale to combine used for claim 2. Chien-Eguro-Horne-Angerer does not explicitly disclose a weighted graph. However, Sofer discloses this. Paragraph [0043] of Sofer discloses a processor may calculate or determine a popularity or frequency of at least one or all of the sub-rules. Paragraph [0056] of Sofer discloses ant colony optimization (ACO) may also be implemented to find the optimal order of sub-rule execution when running multi-processers in parallel, taking into account the run time, the popularity and the probability. It would have been obvious to one of ordinary skill in the art before the effective filing of the invention to combine the regular expression system as disclosed by Chien, with using weights as disclosed by Sofer. One of ordinary skill in the art would have been motivated to combine to apply a known technique to a known device ready for improvement to yield predictable results. Chien and Sofer are directed toward regular expression systems and as such it would be obvious to use the techniques of one in the other. Paragraph [0051] of Sofer discloses performing this optimization for any subset of segments which will be extracted from the regexes may provide a faster expected execution time. As to Claim 4, Chien-Eguro-Horne-Angerer-Sofer discloses the method of claim 3, wherein the at least one optimization algorithm comprises at least one of a genetic optimization algorithm or an ant colony optimization algorithm (Paragraph [0056] of Sofer discloses ant colony optimization (ACO) may also be implemented to find the optimal order of sub-rule execution when running multi-processers in parallel, taking into account the run time, the popularity and the probability). Examiner recites the same rationale to combine used for claim 3. As to Claim 5, Chien-Eguro-Horne-Angerer discloses the method of claim 1. Chien-Eguro-Horne-Angerer does not explicitly disclose further comprising, for each RegEx in the RegEx rule set, pseudo-randomly matching a string to the RegEx, to thereby generate a set of one or more strings for each RegEx rule. However, Sofer disclose this. Paragraph [0045] of Sofer discloses a processor may test the plurality of sub-rules or segments against a data sample. For example, the data sample may include a part or a portion of a database. In some embodiments, testing the sub-rules against the data sample may include executing or running all the sub-rules or segments on the data sample. Examiner recites the same rationale to combine used for claim 3. As to Claim 6, Chien-Eguro-Horne-Angerer-Sofer discloses the method of claim 5, wherein predicting the number of saved states comprises, for each pairing of a RegEx rule in the RegEx rule set to each other RegEx rule in the RegEx rule set, computing a length of a longest common sequence, and wherein the number of saved states comprises an average length of the lengths of the longest common sequences (Paragraph [0045] of Sofer discloses a processor may test the plurality of sub-rules or segments against a data sample. For example, the data sample may include a part or a portion of a database. In some embodiments, testing the sub-rules against the data sample may include executing or running all the sub-rules or segments on the data sample. Paragraph [0046] of Sofer discloses a processor may measure or estimate a probability for every sub-rule that it appears in the data sample, or the probability of matches for every sub-rule in a data sample, referred to herein as the probability of a sub-rule. For example, the processor may count the number of matches for each of the sub-rules and the total number of input strings (e.g., data items) in the data sample. The processor may calculate the probability of matches for a sub-rule by dividing the number of matches of the sub-rule by the total number of input strings. Paragraph [0047] of Sofer discloses a processor may measure the run-time, processing time, computation time or execution time (or any other measure of processing power) of each of the sub-rules tested. In some embodiments, the processor may measure the total processing time, computation time or execution time (or any other measure of processing power) of each of the regex rules). Examiner recites the same rationale to combine used for claim 3. As to Claim 12, Chien-Eguro-Horne-Angerer discloses the computer program product of claim 10. Chien-Eguro-Horne-Angerer does not explicitly disclose wherein partitioning the RegEx rule set further comprises: generating a [weighted] graph based on the number of states and number of saved states (Paragraph [0045] of Horne discloses The automaton M.sub.1 may be considered as a directed graph); and applying at least one optimization algorithm to the weighted graph to generate the plurality of different partitions (Paragraph [0068] of Horne discloses input partitioning techniques described herein may be used to replace a plurality of state transitions having identical behavior with a single state transition (e.g., thereby reducing storage area by eliminating duplicative state transition information), and minimization techniques described herein may be applied to an automaton to find an equivalent automaton that has a fewer number of states (e.g., thereby reducing storage area and increasing processing speeds)). Examiner recites the same rationale to combine used for claim 2. Chien-Eguro-Horne-Angerer does not explicitly disclose a weighted graph. However, Sofer discloses this. Paragraph [0043] of Sofer discloses a processor may calculate or determine a popularity or frequency of at least one or all of the sub-rules. Paragraph [0056] of Sofer discloses ant colony optimization (ACO) may also be implemented to find the optimal order of sub-rule execution when running multi-processers in parallel, taking into account the run time, the popularity and the probability. Examiner recites the same rationale to combine used for claim 3. As to Claim 13, Chien-Eguro-Horne-Angerer-Sofer discloses the computer program product of claim 12, wherein the at least one optimization algorithm comprises at least one of a genetic optimization algorithm or an ant colony optimization algorithm (Paragraph [0056] of Sofer discloses ant colony optimization (ACO) may also be implemented to find the optimal order of sub-rule execution when running multi-processers in parallel, taking into account the run time, the popularity and the probability). Examiner recites the same rationale to combine used for claim 3. As to Claim 14, Chien-Eguro-Horne-Angerer discloses the computer program product of claim 10. Chien-Eguro-Horne-Angerer does not explicitly disclose wherein the computer readable program further causes the data processing system to, for each RegEx in the RegEx rule set, pseudo-randomly match a string to the RegEx, to thereby generate a set of one or more strings for each RegEx rule. However, Sofer disclose this. Paragraph [0045] of Sofer discloses a processor may test the plurality of sub-rules or segments against a data sample. For example, the data sample may include a part or a portion of a database. In some embodiments, testing the sub-rules against the data sample may include executing or running all the sub-rules or segments on the data sample. Examiner recites the same rationale to combine used for claim 3. As to Claim 15, Chien-Eguro-Horne-Angerer-Sofer discloses the computer program product of claim 14, wherein predicting the number of saved states comprises, for each pairing of a RegEx rule in the RegEx rule set to each other RegEx rule in the RegEx rule set, computing a length of a longest common sequence, and wherein the number of saved states comprises an average length of the lengths of the longest common sequences (Paragraph [0045] of Sofer discloses a processor may test the plurality of sub-rules or segments against a data sample. For example, the data sample may include a part or a portion of a database. In some embodiments, testing the sub-rules against the data sample may include executing or running all the sub-rules or segments on the data sample. Paragraph [0046] of Sofer discloses a processor may measure or estimate a probability for every sub-rule that it appears in the data sample, or the probability of matches for every sub-rule in a data sample, referred to herein as the probability of a sub-rule. For example, the processor may count the number of matches for each of the sub-rules and the total number of input strings (e.g., data items) in the data sample. The processor may calculate the probability of matches for a sub-rule by dividing the number of matches of the sub-rule by the total number of input strings. Paragraph [0047] of Sofer discloses a processor may measure the run-time, processing time, computation time or execution time (or any other measure of processing power) of each of the sub-rules tested. In some embodiments, the processor may measure the total processing time, computation time or execution time (or any other measure of processing power) of each of the regex rules). Examiner recites the same rationale to combine used for claim 3. As to Claim 21, Chien-Eguro-Horne-Angerer discloses the apparatus of claim 19. Chien-Eguro-Horne-Angerer does not explicitly disclose wherein partitioning the RegEx rule set further comprises: generating a [weighted] graph based on the number of states and number of saved states (Paragraph [0045] of Horne discloses The automaton M.sub.1 may be considered as a directed graph); and applying at least one optimization algorithm to the weighted graph to generate the plurality of different partitions (Paragraph [0068] of Horne discloses input partitioning techniques described herein may be used to replace a plurality of state transitions having identical behavior with a single state transition (e.g., thereby reducing storage area by eliminating duplicative state transition information), and minimization techniques described herein may be applied to an automaton to find an equivalent automaton that has a fewer number of states (e.g., thereby reducing storage area and increasing processing speeds)). Examiner recites the same rationale to combine used for claim 2. Chien-Eguro-Horne-Angerer does not explicitly disclose a weighted graph. However, Sofer discloses this. Paragraph [0043] of Sofer discloses a processor may calculate or determine a popularity or frequency of at least one or all of the sub-rules. Paragraph [0056] of Sofer discloses ant colony optimization (ACO) may also be implemented to find the optimal order of sub-rule execution when running multi-processers in parallel, taking into account the run time, the popularity and the probability. Examiner recites the same rationale to combine used for claim 3. As to Claim 22, Chien-Eguro-Horne-Angerer-Sofer discloses the apparatus of claim 21, wherein the at least one optimization algorithm comprises at least one of a genetic optimization algorithm or an ant colony optimization algorithm (Paragraph [0056] of Sofer discloses ant colony optimization (ACO) may also be implemented to find the optimal order of sub-rule execution when running multi-processers in parallel, taking into account the run time, the popularity and the probability). As to Claim 23, Chien-Eguro-Horne-Angerer discloses the apparatus of claim 19. Chien-Eguro-Horne-Angerer does not explicitly disclose wherein the computer readable program further causes the data processing system to, for each RegEx in the RegEx rule set, pseudo-randomly match a string to the RegEx, to thereby generate a set of one or more strings for each RegEx rule. However, Sofer disclose this. Paragraph [0045] of Sofer discloses a processor may test the plurality of sub-rules or segments against a data sample. For example, the data sample may include a part or a portion of a database. In some embodiments, testing the sub-rules against the data sample may include executing or running all the sub-rules or segments on the data sample. Examiner recites the same rationale to combine used for claim 3. As to Claim 24, Chien-Eguro-Horne-Angerer-Sofer discloses the apparatus of claim 23, wherein predicting the number of saved states comprises, for each pairing of a RegEx rule in the RegEx rule set to each other RegEx rule in the RegEx rule set, computing a length of a longest common sequence, and wherein the number of saved states comprises an average length of the lengths of the longest common sequences (Paragraph [0045] of Sofer discloses a processor may test the plurality of sub-rules or segments against a data sample. For example, the data sample may include a part or a portion of a database. In some embodiments, testing the sub-rules against the data sample may include executing or running all the sub-rules or segments on the data sample. Paragraph [0046] of Sofer discloses a processor may measure or estimate a probability for every sub-rule that it appears in the data sample, or the probability of matches for every sub-rule in a data sample, referred to herein as the probability of a sub-rule. For example, the processor may count the number of matches for each of the sub-rules and the total number of input strings (e.g., data items) in the data sample. The processor may calculate the probability of matches for a sub-rule by dividing the number of matches of the sub-rule by the total number of input strings. Paragraph [0047] of Sofer discloses a processor may measure the run-time, processing time, computation time or execution time (or any other measure of processing power) of each of the sub-rules tested. In some embodiments, the processor may measure the total processing time, computation time or execution time (or any other measure of processing power) of each of the regex rules). Examiner recites the same rationale to combine used for claim 3. Claims 9, 18, and 25 are rejected under 35 U.S.C. 103 as being unpatentable over Chien-Eguro and further in view of US Pub. No. 2019/0171612 to Shahar et al. (hereinafter “Shahar”). As to Claim 9, Chien-Eguro discloses the method of claim 1. Chien-Eguro does not explicitly disclose wherein the edge computing devices are smart network interface cards. However, Shahar discloses this. Paragraph [0027] of Shahar discloses the NIC supports various types of data processing operations such as, for example, data encryption, data decryption, digital signing of data, data verification using a digital signature, data compression, data decompression, an image processing operation, and a match operation for a regular expression. It would have been obvious to one of ordinary skill in the art before the effective filing of the invention to combine the regular expression system as disclosed by Chien, with using NICs as disclosed by Shahar. One of ordinary skill in the art would have been motivated to combine to apply a known technique to a known device ready for improvement to yield predictable results. Chien and Shahar are directed toward regular expression systems and as such it would be obvious to use the techniques of one in the other. Chien discloses supporting multiple processing units and Shahar discloses known regular expression processing units as including NICs. As to Claim 18, Chien-Eguro discloses the computer program product of claim 10. Chien-Eguro does not explicitly disclose wherein the edge computing devices are smart network interface cards. However, Shahar discloses this. Paragraph [0027] of Shahar discloses the NIC supports various types of data processing operations such as, for example, data encryption, data decryption, digital signing of data, data verification using a digital signature, data compression, data decompression, an image processing operation, and a match operation for a regular expression. Examiner recites the same rationale to combine used for claim 9. As to Claim 25, Chien-Eguro discloses the apparatus of claim 19. Chien-Eguro does not explicitly disclose wherein generating a number of states comprises: building a nondeterministic finite automaton (NFA); performing a state reduction operation on the NFA; and determining a number of states of the NFA after performance of the state reduction operation. However, Shahar discloses this. Paragraph [0027] of Shahar discloses the NIC supports various types of data processing operations such as, for example, data encryption, data decryption, digital signing of data, data verification using a digital signature, data compression, data decompression, an image processing operation, and a match operation for a regular expression. Examiner recites the same rationale to combine used for claim 9. Conclusion Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a). A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action. Any inquiry concerning this communication or earlier communications from the examiner should be directed to Kevin S Mai whose telephone number is (571)270-5001. The examiner can normally be reached Monday to Friday 9AM to 5PM. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Philip Chea can be reached at 5712723951. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /KEVIN S MAI/Primary Examiner, Art Unit 2499
Read full office action

Prosecution Timeline

Sep 06, 2023
Application Filed
Sep 22, 2025
Non-Final Rejection — §103
Nov 04, 2025
Interview Requested
Nov 14, 2025
Examiner Interview Summary
Nov 14, 2025
Applicant Interview (Telephonic)
Nov 24, 2025
Response Filed
Mar 16, 2026
Final Rejection — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12506731
Conference Data Sharing Method and Conference Data Sharing System Capable of Communicating with Remote Conference Members
2y 5m to grant Granted Dec 23, 2025
Patent 12413610
ASSESSING SECURITY OF SERVICE PROVIDER COMPUTING SYSTEMS
2y 5m to grant Granted Sep 09, 2025
Patent 12406064
PRE-BOOT CONTEXT-BASED SECURITY MITIGATION
2y 5m to grant Granted Sep 02, 2025
Patent 12363200
PROVIDING EVENT STREAMS AND ANALYTICS FOR ACTIVITY ON WEB SITES
2y 5m to grant Granted Jul 15, 2025
Patent 12204570
SYSTEM AND METHOD FOR PROVIDING MESSAGE CONTENT BASED ROUTING
2y 5m to grant Granted Jan 21, 2025
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

3-4
Expected OA Rounds
29%
Grant Probability
55%
With Interview (+25.5%)
5y 3m
Median Time to Grant
Moderate
PTA Risk
Based on 428 resolved cases by this examiner. Grant probability derived from career allow rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month